~ubuntu-branches/ubuntu/precise/gnat-gps/precise

« back to all changes in this revision

Viewing changes to kernel/src_info/sn/snsrc/snavigator/sdk/parsers/examples/elf/blobsql.elf

  • Committer: Package Import Robot
  • Author(s): Ludovic Brenta
  • Date: 2012-01-15 15:42:21 UTC
  • mfrom: (10.1.10 sid)
  • Revision ID: package-import@ubuntu.com-20120115154221-ccysuzvh02pkhuwq
Tags: 5.0-6
Rebuild against libgtkada 2.24.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * $Id: blobsql.elf 73460 2002-02-21 14:13:28Z taras $
3
 
 * 
4
 
 * Copyright (C) 1997 Cygnus Solutions, Inc.
5
 
 *
6
 
 * Description:
7
 
 * A sample program written in ELF.
8
 
 */
9
 
 
10
 
INCLUDE "menubar_.am"
11
 
INCLUDE "sql.h"
12
 
INCLUDE "xsql.h"
13
 
INCLUDE "wind.h"
14
 
INCLUDE "multix.h"
15
 
 
16
 
DEFINE  XSQL#IMAGE#TABLE        "xsql_image"
17
 
DEFINE  XSQL#IMAGE#ID           "id"
18
 
DEFINE  XSQL#IMAGE#FILE         "filename"
19
 
DEFINE  XSQL#IMAGE#HOST         "host"
20
 
DEFINE  XSQL#IMAGE#DATE         "created"
21
 
DEFINE  XSQL#IMAGE#OWNER        "author"
22
 
DEFINE  XSQL#IMAGE#SIZE         "length"
23
 
DEFINE  XSQL#IMAGE#PIC          "pic"
24
 
 
25
 
FUNCTION xsql_store_blob(channel,id_val,fname,rdbms_type)
26
 
        VAR     bobj
27
 
        VAR     cmd
28
 
        VAR     bin
29
 
        VAR     cou
30
 
        VAR     ack
31
 
        VAR     FORMAT  sql     ans
32
 
        VAR     date_value
33
 
        VAR     host
34
 
 
35
 
        IF      NOT (rdbms_type = SQL#ORACLE OR
36
 
                rdbms_type = SQL#SYBASE) 
37
 
        {
38
 
                INFO_MESSAGE@("Only Oracle & Sybase are supported")
39
 
                RETURN
40
 
        }
41
 
 
42
 
        host = SHELL_COMMAND@("uname -n")
43
 
 
44
 
        IF rdbms_type = SQL#ORACLE
45
 
                date_value = "SYSDATE"
46
 
 
47
 
        IF rdbms_type = SQL#SYBASE
48
 
                date_value = "'10/10/93'"
49
 
 
50
 
        bobj = READ_BINARY_FILE@(fname)
51
 
        sql_write(channel,"send_blob " ++ BINARY_SIZE@(bobj))
52
 
 
53
 
        cmd = BINARY_TO_ARRAY@(bobj,ELF_SOCKET_SIZE)
54
 
        FOR cou=0 TO (ARRAY_SIZE@(cmd)-1)
55
 
                bin = ARRAY_TO_BINARY@(cmd[cou])
56
 
                SOCKET_WRITE_BINARY@(channel,bin)
57
 
                ack = SOCKET_READ_BINARY@(channel,-1,1) ' Acknowledgement
58
 
        NEXT cou
59
 
 
60
 
        ans = sql_read(channel,-1)                      ' Send blob answer
61
 
 
62
 
        sql_write(channel,"delete from " ++ XSQL#IMAGE#TABLE ++
63
 
                " where " ++ XSQL#IMAGE#ID ++ "=" ++ id_val)
64
 
 
65
 
        ans = sql_read(channel,-1)                      ' Delete answer
66
 
 
67
 
        sql_write(channel,"insert into " ++ XSQL#IMAGE#TABLE ++
68
 
                " (" ++ XSQL#IMAGE#ID ++ "," ++ XSQL#IMAGE#FILE ++
69
 
                "," ++ XSQL#IMAGE#HOST ++ "," ++ XSQL#IMAGE#DATE ++ "," ++
70
 
                XSQL#IMAGE#OWNER ++ "," ++ XSQL#IMAGE#SIZE ++ ")" ++
71
 
                " values (" ++ id_val ++ ",'" ++ fname ++ "','"
72
 
                ++ host[0] ++
73
 
                "'," ++ 
74
 
                date_value ++ ",'" ++ xsql_elf_user_name() ++ "' " ++
75
 
                "," ++ BINARY_SIZE@(bobj) ++ ")")
76
 
        bobj = NULL                                                     ' Free it
77
 
 
78
 
        ans = sql_read(channel,-1)
79
 
                        ' Insert answer
80
 
        IF ans.errcode <> 0                             '[01]
81
 
                INFO_MESSAGE@(ans.errstr ++ "\n\n" ++ ans.errcmd)
82
 
 
83
 
 
84
 
        IF rdbms_type = SQL#ORACLE
85
 
        {
86
 
                sql_write(channel,"update " ++ XSQL#IMAGE#TABLE ++
87
 
                        " set " ++ XSQL#IMAGE#PIC ++ "=:" ++ XSQL#IMAGE#PIC ++
88
 
                        " where " ++ XSQL#IMAGE#ID ++ "=" ++ id_val)
89
 
        }
90
 
        IF rdbms_type = SQL#SYBASE
91
 
        {
92
 
                sql_write(channel,"store_blob " ++ 
93
 
                                                        XSQL#IMAGE#TABLE ++ " " ++
94
 
                                                    XSQL#IMAGE#PIC ++ " " ++ 
95
 
                                                        XSQL#IMAGE#ID  ++ " " ++
96
 
                                                        id_val)
97
 
        }
98
 
 
99
 
        ans = sql_read(channel,-1)                      ' Update answer
100
 
 
101
 
        IF ans.errcode <> 0
102
 
                INFO_MESSAGE@(ans.errstr ++ "\n\n" ++ ans.errcmd)
103
 
        ELSE
104
 
        {
105
 
                sql_write(channel,"commit")
106
 
                ans = sql_read(channel,-1)
107
 
                INFO_MESSAGE@("Image Saved")
108
 
        }
109
 
 
110
 
ENDMACRO
111
 
 
112
 
FUNCTION xsql_store_file
113
 
        VAR     FORMAT  sql_pars        sqlp
114
 
        VAR     pathname
115
 
        VAR     dir
116
 
        VAR     file
117
 
        VAR     off
118
 
 
119
 
        ON ERROR
120
 
        {
121
 
                ERROR_BOX@()
122
 
                GOTO quit
123
 
        }
124
 
        pathname = OPEN_PROMPT@(NULL,NULL,"*",
125
 
                "Store file into RDBMS")
126
 
 
127
 
        IF pathname = ""
128
 
                EXIT@()
129
 
 
130
 
        PARSE_PATHNAME@(pathname,dir,file)
131
 
        off = STRING_INDEX@(file,".")
132
 
        IF off > 0
133
 
                file = SUBSTRING@(file,1,off - 1)
134
 
 
135
 
        sqlp = sql_connect(FALSE)
136
 
 
137
 
        xsql_store_blob(sqlp.channel,
138
 
                "'" ++ file ++ "'",pathname,sqlp.rdbms_type)
139
 
 
140
 
quit:
141
 
        IF NOT IS_NULL@(sqlp.channel)
142
 
                sql_disconnect(sqlp.channel)
143
 
ENDMACRO
144
 
 
145
 
DEFINE  XSQL#FETCH#LIST         "id_list"
146
 
DEFINE  XSQL#FETCH#OPEN         "open"
147
 
DEFINE  XSQL#FETCH#SEARCH       "search"
148
 
/*
149
 
 *      Menu events
150
 
 */
151
 
DEFINE  FETCH#NAME#ASC          "name_asc"
152
 
DEFINE  FETCH#NAME#DESC         "name_desc"
153
 
DEFINE  FETCH#DATE#ASC          "date_asc"
154
 
DEFINE  FETCH#DATE#DESC         "date_desc"
155
 
 
156
 
DEFINE  FETCH#VIEW#ID           "view_id"
157
 
DEFINE  FETCH#VIEW#FNAME        "view_fname"
158
 
DEFINE  FETCH#VIEW#HOST         "view_host"
159
 
DEFINE  FETCH#VIEW#DATE         "view_date"
160
 
DEFINE  FETCH#VIEW#OWNER        "view_owner"
161
 
DEFINE  FETCH#VIEW#SIZE         "view_size"
162
 
 
163
 
FUNCTION xsql_fetch_file
164
 
        VAR     FORMAT  sql_pars        sqlp
165
 
        VAR     FORMAT  sql                     ans
166
 
        VAR     FORMAT  sql                     blb
167
 
        VAR     file
168
 
        VAR     dbox
169
 
        VAR     cou
170
 
        VAR     exiter
171
 
        VAR     extension
172
 
        VAR     id
173
 
        VAR     cmd
174
 
        VAR     menu_str
175
 
        VAR     list
176
 
        VAR     file_operation
177
 
        VAR     order_field
178
 
        VAR     fetch_name_asc
179
 
        VAR     fetch_name_desc
180
 
        VAR     fetch_date_asc
181
 
        VAR     fetch_date_desc
182
 
        VAR     fetch_cmd
183
 
        VAR     fetch_query
184
 
        VAR     update_flag
185
 
 
186
 
        ON ERROR
187
 
        {
188
 
                ERROR_BOX@()
189
 
                GOTO quit
190
 
        }
191
 
 
192
 
        order_field = XSQL#IMAGE#ID
193
 
        file_operation = MENUSTAT#DIMMED
194
 
        sqlp = sql_connect(FALSE)
195
 
 
196
 
        fetch_query = "select " ++ XSQL#IMAGE#ID ++ "," ++ XSQL#IMAGE#FILE ++
197
 
                "," ++ XSQL#IMAGE#HOST ++ "," ++ XSQL#IMAGE#DATE ++ "," ++
198
 
                XSQL#IMAGE#OWNER ++
199
 
                "," ++ XSQL#IMAGE#SIZE ++ " from " ++ XSQL#IMAGE#TABLE ++
200
 
                " order by " ++ order_field
201
 
 
202
 
        dbox = DB_LOAD@("xsql/fetch_file")
203
 
        menu_str = xsql_fetch_doc_menu()
204
 
        SET_SELECTIONS@(SQL#MENU#ID,menu_str)
205
 
        DB_MENU_BAR@(dbox,SQL#MENU#ID)
206
 
 
207
 
        DB_ICON@(dbox,XSQL#BITMAP)
208
 
        DB_OWNERLESS@(dbox,TRUE)
209
 
 
210
 
        DB_CTRL_HORIZ_SCROLL@(dbox,XSQL#FETCH#LIST,TRUE)
211
 
        DB_CTRL_PICK_DEFAULT@(dbox,XSQL#FETCH#LIST,TRUE)
212
 
        DB_CTRL_MONOSPACE@(dbox,XSQL#FETCH#LIST,TRUE)
213
 
        DB_CTRL_RETURN_ON_CHANGE@(dbox,XSQL#FETCH#LIST,TRUE)
214
 
 
215
 
        list = xsql_exec_fetch_query(sqlp.channel,ans,fetch_query)
216
 
        DB_CTRL_STRINGS@(dbox,XSQL#FETCH#LIST,list)
217
 
        DB_CTRL_VALUE@(dbox,XSQL#FETCH#LIST,0)
218
 
 
219
 
        DB_WINDOW_REMAIN@(dbox,TRUE)
220
 
        DB_CTRL_DEFAULT_BUTTON@(dbox,XSQL#FETCH#OPEN,TRUE)
221
 
 
222
 
        DB_CTRL_GRAYED@(dbox,XSQL#FETCH#OPEN,TRUE)
223
 
 
224
 
        fetch_name_asc = MENUSTAT#RADIO_ON
225
 
        fetch_name_desc = MENUSTAT#RADIO_OFF
226
 
        fetch_date_asc = MENUSTAT#RADIO_OFF
227
 
        fetch_date_desc = MENUSTAT#RADIO_OFF
228
 
 
229
 
        DB_MENU_STATUS@(dbox,FETCH#VIEW#ID,MENUSTAT#TOGGLE_ON)
230
 
        DB_MENU_STATUS@(dbox,FETCH#VIEW#FNAME,MENUSTAT#TOGGLE_ON)
231
 
        DB_MENU_STATUS@(dbox,FETCH#VIEW#HOST,MENUSTAT#TOGGLE_ON)
232
 
        DB_MENU_STATUS@(dbox,FETCH#VIEW#DATE,MENUSTAT#TOGGLE_ON)
233
 
        DB_MENU_STATUS@(dbox,FETCH#VIEW#OWNER,MENUSTAT#TOGGLE_ON)
234
 
        DB_MENU_STATUS@(dbox,FETCH#VIEW#SIZE,MENUSTAT#TOGGLE_ON)
235
 
 
236
 
again:
237
 
        DB_MENU_STATUS@(dbox,FETCH#NAME#ASC,fetch_name_asc)
238
 
        DB_MENU_STATUS@(dbox,FETCH#NAME#DESC,fetch_name_desc)
239
 
        DB_MENU_STATUS@(dbox,FETCH#DATE#ASC,fetch_date_asc)
240
 
        DB_MENU_STATUS@(dbox,FETCH#DATE#DESC,fetch_date_desc)
241
 
 
242
 
        DB_MENU_STATUS@(dbox,COPY#MARKED#FIELDS,file_operation)
243
 
        DB_MENU_STATUS@(dbox,EDIT#CUT#CMD,file_operation)
244
 
        DB_MENU_STATUS@(dbox,EDIT#DEL#CMD,file_operation)
245
 
 
246
 
        DB_DISPLAY@(dbox)
247
 
        DB_MENU_STATUS@(dbox,FETCH#DATE#ASC,MENUSTAT#RADIO_ON)
248
 
 
249
 
        exiter = DB_EXIT_CTRL@(dbox)
250
 
 
251
 
        IF exiter = MENU#EV
252
 
        {
253
 
                cmd = DB_MENU_BAR_WORD@(dbox)
254
 
                IF cmd = START#WP
255
 
                {
256
 
                        NEW_TASK@("WP_APPLICATION_DLG@")
257
 
                        GOTO again
258
 
                }
259
 
                ELSE IF cmd = START#GR
260
 
                {
261
 
                        NEW_TASK@("GR_APPLICATION_DLG@")
262
 
                        GOTO again
263
 
                }
264
 
                ELSE IF cmd = START#SS
265
 
                {
266
 
                        NEW_TASK@("SS_APPLICATION_DLG@")
267
 
                        GOTO again
268
 
                }
269
 
                ELSE IF cmd = START#INBOX
270
 
                {
271
 
                        NEW_TASK@("INBOX_DLG@")
272
 
                        GOTO again
273
 
                }
274
 
                ELSE IF cmd = START#MAIL
275
 
                {
276
 
                        NEW_TASK@("MAIL_DLG@")
277
 
                        GOTO again
278
 
                }
279
 
                ELSE IF cmd = START#DD
280
 
                {
281
 
                        NEW_TASK@("DD_DIRECTORY_DISPLAY@")
282
 
                        GOTO again
283
 
                }
284
 
                ELSE IF cmd = START#ME
285
 
                {
286
 
                        NEW_TASK@("ME_APPLICATION_DLG@")
287
 
                        GOTO again
288
 
                }
289
 
                ELSE IF cmd = START#MAIN
290
 
                {
291
 
                        NEW_TASK@("MAIN_DBOX@")
292
 
                        GOTO again
293
 
                }
294
 
                ELSE IF cmd = RUN#MACRO
295
 
                {
296
 
                        NEW_TASK@("RUN_MACRO_DLG@")
297
 
                        GOTO again
298
 
                }
299
 
                ELSE IF cmd = CUST#LOOK#FEEL
300
 
                {
301
 
                        NEW_TASK@("X_PREFS_DLG@")
302
 
                        GOTO again
303
 
                }
304
 
                ELSE IF cmd = CUST#MENU#BAR
305
 
                {
306
 
                        file = USER_DIR@() ++ "/" ++ FETCH#SQL#MB
307
 
                        cmd = NULL
308
 
                        cmd[0] = FETCH#SQL#MB
309
 
                        WRITE_DATA_FILE@(file,menu_str)
310
 
                        PEND_FOR_NEW_TASK@("xsql_customize",cmd)
311
 
                        menu_str = READ_DATA_FILE@(cmd)
312
 
                        SET_SELECTIONS@(SQL#MENU#ID,menu_str)
313
 
                        DB_MENU_BAR@(dbox,SQL#MENU#ID)
314
 
                        GOTO again
315
 
                }
316
 
                ELSE IF cmd = START#ISQL
317
 
                {
318
 
                        cmd = sqlp.host,sqlp.rdbms_name,sqlp.rdbms_type,
319
 
                                sqlp.user,sqlp.passwd
320
 
                        NEW_TASK@("ISQL",cmd)
321
 
                        GOTO again
322
 
                }
323
 
                ELSE IF cmd = START#SQL#RUN#FORM
324
 
                {
325
 
                        cmd = NULL
326
 
                        cmd[1] = CREATE_TEMP_FILE@("/tmp/xsql-frm%%%%%%")
327
 
                        WRITE_DATA_FILE@(cmd[1],sqlp)
328
 
                        NEW_TASK@("sqlrunform",cmd)
329
 
                        GOTO again
330
 
                }
331
 
                ELSE IF cmd = START#SQL#FORMS
332
 
                {
333
 
                        cmd = sqlp.host,sqlp.rdbms_name,sqlp.rdbms_type,
334
 
                                sqlp.user,sqlp.passwd
335
 
                        NEW_TASK@("SQLFORMS",cmd)
336
 
                        GOTO again
337
 
                }
338
 
                ELSE IF cmd = EXIT#FUNC
339
 
                {
340
 
                        IF update_flag = TRUE
341
 
                        {
342
 
                                cmd = YES_NO_CANCEL_PROMPT@("Do you want to save your changes ?")
343
 
                                IF IS_NULL@(cmd)
344
 
                                        GOTO again
345
 
 
346
 
                                IF cmd = TRUE
347
 
                                {
348
 
                                        sql_write(sqlp.channel,"commit")
349
 
                                        ans = sql_read(sqlp.channel,-1)
350
 
 
351
 
                                }
352
 
                        }
353
 
                        GOTO quit
354
 
                }
355
 
                ELSE IF cmd = COPY#MARKED#FIELDS OR cmd = EDIT#DEL#CMD OR
356
 
                        cmd = EDIT#CUT#CMD
357
 
                {
358
 
                        cou = DB_CTRL_GET_VALUE@(dbox,XSQL#FETCH#LIST) - 1
359
 
 
360
 
                        IF cmd = COPY#MARKED#FIELDS OR cmd = EDIT#CUT#CMD
361
 
                        {
362
 
                                sql_write(sqlp.channel,fetch_cmd)
363
 
 
364
 
                                blb = sql_read(sqlp.channel,-1)
365
 
                                IF blb.errcode <> 0
366
 
                                {
367
 
                                        INFO_MESSAGE@(blb.errstr)
368
 
                                        GOTO again
369
 
                                }
370
 
                        
371
 
                                xsql_save_file_as(ans.records[cou][1],
372
 
                                        blb.records[0][0],NULL,2)
373
 
                        }
374
 
                        IF cmd = EDIT#DEL#CMD OR cmd = EDIT#CUT#CMD
375
 
                        {
376
 
                                sql_write(sqlp.channel,"delete from " ++
377
 
                                        XSQL#IMAGE#TABLE ++
378
 
                                        " where " ++ XSQL#IMAGE#ID ++ "='" ++ 
379
 
                                        ans.records[cou][0] ++ "'")
380
 
 
381
 
                                blb = sql_read(sqlp.channel,-1)         ' Delete answer
382
 
                                IF blb.errcode <> 0
383
 
                                        INFO_MESSAGE@(blb.errstr)
384
 
                                ELSE
385
 
                                {
386
 
                                        update_flag = TRUE
387
 
                                        list = xsql_exec_fetch_query(sqlp.channel,ans,
388
 
                                                fetch_query)
389
 
                                        DB_CTRL_STRINGS@(dbox,XSQL#FETCH#LIST,list)
390
 
                                        DB_CTRL_VALUE@(dbox,XSQL#FETCH#LIST,0)
391
 
                                        DB_CTRL_GRAYED@(dbox,XSQL#FETCH#OPEN,TRUE)
392
 
                                }
393
 
                        }
394
 
                }
395
 
/*
396
 
                ELSE IF cmd FETCH#NAME#ASC
397
 
        DB_MENU_STATUS@(dbox,FETCH#NAME#ASC,fetch_name_asc)
398
 
        DB_MENU_STATUS@(dbox,FETCH#NAME#DESC,fetch_name_desc)
399
 
        DB_MENU_STATUS@(dbox,FETCH#DATE#ASC,fetch_date_asc)
400
 
        DB_MENU_STATUS@(dbox,FETCH#DATE#DESC,fetch_date_desc)
401
 
'               ELSE IF cmd = EXIT#FUNC
402
 
*/
403
 
        }
404
 
        ELSE IF exiter = XSQL#FETCH#OPEN
405
 
        {
406
 
                cou = DB_CTRL_GET_VALUE@(dbox,XSQL#FETCH#LIST) - 1
407
 
 
408
 
                IF sqlp.rdbms_type = SQL#SYBASE
409
 
                {
410
 
                        sql_write(sqlp.channel,"set TEXTSIZE 1000000")
411
 
 
412
 
                        blb = sql_read(sqlp.channel,-1)
413
 
                }
414
 
 
415
 
 
416
 
                sql_write(sqlp.channel,fetch_cmd)
417
 
 
418
 
                blb = sql_read(sqlp.channel,-1)
419
 
                IF blb.errcode <> 0
420
 
                {
421
 
                        INFO_MESSAGE@(blb.errstr)
422
 
                        GOTO again
423
 
                }
424
 
 
425
 
                xsql_blob_doc_type(ans.records[cou][1],extension)
426
 
 
427
 
                IF NOT IS_NULL@(extension)
428
 
                {
429
 
                        file = CREATE_TEMP_FILE@("/tmp/" ++
430
 
                                SUBSTRING@(ans.records[cou][0],1,5) ++ "%%%%%%" ++
431
 
                                extension)
432
 
 
433
 
                        WRITE_BINARY_FILE@(file,blb.records[0][0])
434
 
 
435
 
 
436
 
                        IF extension = ".im"
437
 
                        {
438
 
                                GR_APPLICATION_DLG@()
439
 
                                GR_REVERT@()
440
 
                                GR_SET_FOR_IMPORT@()
441
 
                                GE_PASTE_IM@(file)
442
 
                        }
443
 
                        ELSE
444
 
                        {
445
 
                
446
 
                                OPEN_DOC@(file)
447
 
 
448
 
                        }
449
 
 
450
 
                }
451
 
        }
452
 
        ELSE IF exiter = XSQL#FETCH#LIST
453
 
        {
454
 
                cou = DB_CTRL_GET_VALUE@(dbox,XSQL#FETCH#LIST) - 1
455
 
                IF IS_NULL@(cou) OR cou < 0
456
 
                {
457
 
                        DB_CTRL_GRAYED@(dbox,XSQL#FETCH#OPEN,TRUE)
458
 
                        file_operation = MENUSTAT#DIMMED
459
 
 
460
 
                        GOTO again
461
 
                }
462
 
                fetch_cmd = "fetch_blob select " ++ XSQL#IMAGE#PIC ++ " from " ++
463
 
                        XSQL#IMAGE#TABLE ++ " where " ++ XSQL#IMAGE#ID ++ "=" ++
464
 
                        "'" ++ ans.records[cou][0] ++ "'"
465
 
 
466
 
                file_operation = MENUSTAT#NORMAL
467
 
 
468
 
                xsql_blob_doc_type(ans.records[cou][1],extension)
469
 
 
470
 
                IF IS_NULL@(extension)
471
 
                {
472
 
                        DB_CTRL_GRAYED@(dbox,XSQL#FETCH#OPEN,TRUE)
473
 
                }
474
 
                ELSE
475
 
                {
476
 
                        DB_CTRL_GRAYED@(dbox,XSQL#FETCH#OPEN,FALSE)
477
 
                }
478
 
        }
479
 
        ELSE IF exiter = XSQL#FETCH#SEARCH
480
 
        {
481
 
                list = xsql_exec_fetch_query(sqlp.channel,ans,
482
 
                                fetch_query)
483
 
                DB_CTRL_STRINGS@(dbox,XSQL#FETCH#LIST,list)
484
 
                DB_CTRL_VALUE@(dbox,XSQL#FETCH#LIST,0)
485
 
                DB_CTRL_GRAYED@(dbox,XSQL#FETCH#OPEN,TRUE)
486
 
        }
487
 
        GOTO again
488
 
 
489
 
quit:
490
 
        IF NOT IS_NULL@(sqlp.channel)
491
 
                sql_disconnect(sqlp.channel)
492
 
 
493
 
ENDMACRO
494
 
 
495
 
FUNCTION xsql_blob_doc_type(pathname,ext)
496
 
        VAR     dir
497
 
        VAR     file
498
 
        VAR     def
499
 
        VAR     off
500
 
 
501
 
        def = "\\i(file-16x16)"
502
 
        ext = NULL
503
 
 
504
 
        PARSE_PATHNAME@(pathname,dir,file)
505
 
 
506
 
        off = STRING_INDEX@(file,".")
507
 
        IF off = 0
508
 
                RETURN(def)
509
 
 
510
 
        ext = SUBSTRING@(file,off)
511
 
 
512
 
        IF ext = ".im"
513
 
                RETURN("\\i(5-16x16)")
514
 
 
515
 
        IF ext = ".ag"
516
 
                RETURN("\\i(ge-16x16)")
517
 
 
518
 
        IF ext = ".aw"
519
 
                RETURN("\\i(dc-16x16)")
520
 
 
521
 
        IF ext = ".as"
522
 
                RETURN("\\i(ss-16x16)")
523
 
 
524
 
        IF ext = ".am"
525
 
                RETURN("\\i(4-16x16)")
526
 
 
527
 
        IF ext = ".au"
528
 
                RETURN("\\i(xsql/voice)")
529
 
 
530
 
        ext = NULL
531
 
        RETURN(def)
532
 
ENDMACRO
533
 
 
534
 
 
535
 
FUNCTION xsql_fetch_doc_menu
536
 
        VAR     file
537
 
        VAR     mainm
538
 
        VAR     menu_bar
539
 
        VAR     view
540
 
        VAR     order_by
541
 
 
542
 
        mainm = xsql_main_menu_opt()
543
 
 
544
 
        file[0] = "Copy...",COPY#MARKED#FIELDS,
545
 
                "F4",NULL,NULL,NULL,NULL,NULL,"C"
546
 
 
547
 
        file[1] = "Move...",EDIT#CUT#CMD,
548
 
                "F3",NULL,NULL,NULL,NULL,NULL,"M"
549
 
 
550
 
        file[2] = "Delete...",EDIT#DEL#CMD,
551
 
                "^D",NULL,NULL,NULL,NULL,NULL,"D"
552
 
 
553
 
        file[3] = "Exit",EXIT#FUNC,
554
 
                "^E",NULL,NULL,NULL,NULL,NULL,"E"
555
 
 
556
 
        order_by[0] = "Name Ascending",FETCH#NAME#ASC,
557
 
                NULL,NULL,NULL,NULL,NULL,NULL,"N"
558
 
 
559
 
        order_by[1] = "Name Descending",FETCH#NAME#DESC,
560
 
                NULL,NULL,NULL,NULL,NULL,NULL,"m"
561
 
 
562
 
        order_by[2] = "Date Ascending",FETCH#DATE#ASC,
563
 
                NULL,NULL,NULL,NULL,NULL,NULL,"t"
564
 
 
565
 
        order_by[3] = "Date Descending",FETCH#DATE#DESC,
566
 
                NULL,NULL,NULL,NULL,NULL,NULL,"e"
567
 
 
568
 
        view[0] = "Id",FETCH#VIEW#ID,
569
 
                NULL,NULL,NULL,NULL,NULL,NULL,"I"
570
 
 
571
 
        view[1] = "Filename",FETCH#VIEW#FNAME,
572
 
                NULL,NULL,NULL,NULL,NULL,NULL,"F"
573
 
 
574
 
        view[2] = "Host",FETCH#VIEW#HOST,
575
 
                NULL,NULL,NULL,NULL,NULL,NULL,"H"
576
 
 
577
 
        view[3] = "Date",FETCH#VIEW#DATE,
578
 
                NULL,NULL,NULL,NULL,NULL,NULL,"e"
579
 
 
580
 
        view[4] = "Owner",FETCH#VIEW#OWNER,
581
 
                NULL,NULL,NULL,NULL,NULL,NULL,"O"
582
 
 
583
 
        view[5] = "Size",FETCH#VIEW#SIZE,
584
 
                NULL,NULL,NULL,NULL,NULL,NULL,"S"
585
 
 
586
 
        menu_bar[0] = "*",mainm
587
 
 
588
 
        menu_bar[1] = "File",file,
589
 
                NULL,NULL,NULL,NULL,NULL,NULL,"F"
590
 
 
591
 
        menu_bar[2] = "View",view,
592
 
                NULL,NULL,NULL,NULL,NULL,NULL,"V"
593
 
 
594
 
        menu_bar[3] = "Order By",order_by,
595
 
                NULL,NULL,NULL,NULL,NULL,NULL,"O"
596
 
 
597
 
        RETURN(menu_bar)
598
 
 
599
 
ENDMACRO
600
 
 
601
 
FUNCTION xsql_exec_fetch_query(channel,FORMAT sql ans,cmd)
602
 
        VAR     list
603
 
        VAR     raw_list
604
 
        VAR     cou
605
 
        VAR     extension
606
 
 
607
 
        sql_write(channel,cmd)
608
 
        ans = sql_read(channel,-1)
609
 
        IF ans.errcode <> 0
610
 
        {
611
 
                INFO_MESSAGE@(ans.errstr ++ "\n\n" ++ ans.errcmd)
612
 
                list[0] = NULL
613
 
                RETURN(list)
614
 
        }
615
 
 
616
 
        raw_list = xsql_create_output(NULL,NULL,TRUE,ans)
617
 
 
618
 
        list[0] = "\\i(xsql/emt-16x16)" ++ raw_list[0]
619
 
        FOR cou=0 TO (ARRAY_SIZE@(ans.records)-1)
620
 
                list[cou + 1] = xsql_blob_doc_type(ans.records[cou][1],
621
 
                        extension) ++ raw_list[cou + 1]
622
 
        NEXT cou
623
 
 
624
 
        RETURN(list)
625
 
 
626
 
ENDMACRO