home *** CD-ROM | disk | FTP | other *** search
-
- PRIVATE ALL
- set procedure to sample
-
- oldTalk = SET("TALK")
- SET TALK OFF
- oldCompat = SET("COMPATIBLE")
- SET COMPATIBLE OFF
- oldArea = SELECT()
-
- SET LIBRARY TO fpSQL ADDITIVE
-
- DIMENSION TableList[1]
- DIMENSION FromList[1]
- DIMENSION ColumnList[1]
- DIMENSION SelectList[1]
- DIMENSION WhereList[1]
-
- mess_str = ""
-
- ckHandle = 0
- sqlSelect = ""
-
- DO Sample.MPR
- DO Connect.SPR
-
- IF ckHandle = 0
- RELEASE LIBRARY fpSQL
- SET SYSMENU TO DEFAULT
- return
- ENDIF
-
- exitApp = .F.
- READ CYCLE VALID exitApp
-
- SELECT (oldArea)
- SET COMPATIBLE &oldCompat
- SET TALK &oldTalk
-
-
- FUNCTION BuildSQL
- PRIVATE lenList, SQLSelect
-
- SQLSelect = "SELECT "
- lenList = ALEN(SelectList) - 1
- IF (lenList != 0)
- SQLSelect = SQLSelect + SelectList[1]
- FOR i = 2 TO lenList
- SQLSelect = SQLSelect + ", " + SelectList[i] + CHR(13)
- ENDFOR
- ENDIF
-
- SQLSelect = SQLSelect + " FROM "
- lenList = ALEN(FromList) - 1
- IF (lenList != 0)
- SQLSelect = SQLSelect + FromList[1]
- FOR i = 2 TO lenList
- SQLSelect = SQLSelect + ", " + FromList[i] + CHR(13)
- ENDFOR
- ENDIF
-
- lenList = ALEN(WhereList) - 1
- IF (lenList != 0)
- SQLSelect = SQLSelect + " WHERE " + WhereList[1]
- FOR i = 2 TO lenList
- SQLSelect = SQLSelect + " " + WhereList[i] + CHR(13)
- ENDFOR
- ENDIF
-
- RETURN SQLSelect
-
-
- PROCEDURE xQuery
- PARAMETER stmt, xMode
- PRIVATE retCode, Async
-
- DEFINE WINDOW results ;
- AT 0.000, 0.000 ;
- SIZE 19.000,77.000 ;
- TITLE "Results" ;
- FONT "MS Sans Serif", 8 ;
- STYLE "B" ;
- FLOAT ;
- CLOSE ;
- SHADOW ;
- MINIMIZE ;
- ZOOM GROW ;
- SYSTEM
- MOVE WINDOW results CENTER
-
- IF (ckHandle == 0)
- ?? CHR(7)
- WAIT WINDOW "No server connection"
- ELSE
- SELE 0
- IF (xMode == 2) && Asynch
- retCode = DBSetOpt(ckHandle, "Async", 1)
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- ENDIF
-
- retCode = 0
- DO WHILE (retCode == 0)
- retCode = DBExec(ckHandle, stmt)
- WAIT WINDOW "Query executing" TIMEOUT 1
- ENDDO
-
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- ELSE
- GO TOP
- BROW WINDOW Results
- ENDIF
-
- retCode = DBSetOpt(ckHandle, "Async", 0)
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- ENDIF
- ELSE && synchronous
- retCode = DBExec(ckHandle, stmt)
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- ELSE
- GO TOP
- BROW WINDOW Results
- ENDIF
- ENDIF
- USE
- ENDIF
- RETURN
-
-
- PROCEDURE DisConn
- PRIVATE retCode
-
- retCode = DBDisConn(ckHandle)
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- ENDIF
- ckHandle = 0
- DIMENSION TableList[1]
- DIMENSION FromList[1]
- DIMENSION ColumnList[1]
- DIMENSION SelectList[1]
- DIMENSION WhereList[1]
- SHOW MENU _MSYSMENU
- mess_str = "Data Source: none"
- set message to mess_str
-
- RETURN
-
-
- PROCEDURE BuildTList
- PRIVATE nTables, nObjects, retCode
- IF (ckHandle == 0)
- USE Tables
- ELSE
- retCode = DBTables(ckHandle)
- GO TOP
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- DIMENSION TableList[1]
- ENDIF
- ENDIF
- nTables = 0
- nObjects = RECCOUNT()
- IF (nObjects != 0)
- DIMENSION TableList[nObjects]
- SCAN FOR INLIST(Table_Type, "TABLE", "VIEW")
- nTables = nTables + 1
- TableList[nTables] = ALLTRIM(Table_Name)
- ENDSCAN
- ENDIF
- USE
- DIMENSION TableList[nTables + 1]
- RETURN
-
- function Yes_No
- *-- This function simply allows the user to
- *-- answer yes or no to a prompt. The answer
- *-- is then passed back as a logical.
-
- parameter cMessage, cMsgHead
-
- m.choice = 1
- do yesno.spr with cMsgHead,cMessage
- return iif(m.choice = 1,.t.,.f.)
-
-
- procedure sendcanc
-
- if yes_no("Are you sure you wish to send a Cancel message","Send Cancel")
- retCode = DBCancel(ckHandle)
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- ENDIF
- endif
-
- return
-
- procedure showtab
-
- retCode = DBTables(ckHandle)
- IF (retCode < 0)
- DO RepoErro.SPR WITH retCode
- return
- ENDIF
-
- browse title "Current Tables"
- use
- return