This is code I used a while ago. Don't use it anymore as I have a better
way to do this via my VB wrapper. There are some lines that deal with code
in other parts of my application, but I take it you can see that.
In case you didn't know this is VB(A).
Function GetSQLiteTableInfo2(strDB As String, _
strTable As String, _
Optional strSelect As String, _
Optional strOmitFields As String, _
Optional strAlias As String, _
Optional strFields As String, _
Optional strDataTypes As String, _
Optional bCurrentConnection As Boolean) As
String()
'will produce the table fields as an 0-based 1-D array
'and make the strings:
'field1,field2,field3 etc.
'field1, field2, field3 etc.
'datatype1,datatype2,datatype3 etc.
'------------------------------------------------------
Dim r As Long
Dim c As Long
Dim strSQL As String
Dim arr
Dim arr2
Dim arr3
Dim strAlias2 As String
Dim arrOmitFields
Dim bOmit As Boolean
Dim bDoneFirst As Boolean
Dim lRows As Long
Dim strError As String
Dim lDBHandle As Long
10 If Len(strAlias) > 0 Then
20 strAlias2 = strAlias & "."
30 End If
40 If Len(strOmitFields) > 0 Then
50 arrOmitFields = Split(strOmitFields, ",")
60 bOmit = True
70 End If
80 If bShowErrors Then
90 On Error GoTo 0
100 Else
110 On Error GoTo ERROROUT
120 End If
130 If bCurrentConnection = False Then
140 OpenDB strDB
150 End If
160 strSQL = "pragma table_info('" & strTable & "')"
170 arr = GetFromDB(strSQL, lRows, strError, strDB)
180 If lRows = -1 Then
190 GoTo ERROROUT
200 End If
210 If bOmit Then
220 For c = 0 To UBound(arr)
230 If ValueIn1DArray(CStr(c + 1), arrOmitFields) = -1 Then
240 If bDoneFirst = False Then
250 strSelect = strAlias2 & arr(c, 1)
260 strFields = arr(c, 1)
270 strDataTypes = arr(c, 2)
280 bDoneFirst = True
290 Else
300 strSelect = strSelect & ", " & strAlias2 & arr(c, 1)
310 strFields = strFields & "," & arr(c, 1)
320 strDataTypes = strDataTypes & "," & arr(c, 2)
330 End If
340 End If
350 Next
360 Else
370 For c = 0 To UBound(arr)
380 If c = 0 Then
390 strFields = arr(c, 1)
400 strSelect = strAlias2 & arr(c, 1)
410 strDataTypes = arr(c, 2)
420 Else
430 strFields = strFields & "," & arr(c, 1)
440 strSelect = strSelect & ", " & strAlias2 & arr(c, 1)
450 strDataTypes = strDataTypes & "," & arr(c, 2)
460 End If
470 Next
480 End If
490 arr2 = Split(strFields, ",")
500 ReDim arr3(0 To UBound(arr2)) As String
510 For r = 0 To UBound(arr2)
520 arr3(r) = arr2(r)
530 Next
540 GetSQLiteTableInfo2 = arr3
550 Exit Function
ERROROUT:
560 ReDim arr2(0 To 6) As String
570 arr2(0) = "-1"
580 arr2(1) = CStr(Err.Number)
590 arr2(2) = Err.Description
600 arr2(3) = CStr(Erl)
610 arr2(4) = strTable
620 arr2(5) = strOmitFields
630 arr2(6) = strAlias
650 GetSQLiteTableInfo2 = arr2
End Function
Have a nice Christmas as well.
RBS
-----Original Message-----
From: Cesar D. Rodas [mailto:[EMAIL PROTECTED]
Sent: 25 December 2007 01:35
To: [email protected]
Subject: [sqlite] Helping with table definition?
Hello,
Merry Christmas for every one!
I am wondering if someone did a function (the language doesn't care very
much) to get the table information and want to share him/her code.
I know that you can have the SQL definition of a table doing a "select *
from sqlite_master where type='table' ", but I need to parse SQL and
understand it.
Thanks in advance.
--
Best Regards
Cesar D. Rodas
http://www.cesarodas.com
http://www.thyphp.com
http://www.phpajax.org
Phone: +595-961-974165
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------