怎么枚举sqlite中的所有表及其字段?

如何枚举sqlite中的所有表及其字段??
我有一份sqlite数据库文件,但不知道里面的表名,如何枚举出所有的表名以及其字段名??

关键是sqlite的sql语句如何写?我试了一些sql语句不行,特来求助。

------解决方案--------------------
sqlite> .tables
MailLabel numtable t1 test
sqlite>

SQL code
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ON|OFF        Turn output mode suitable for EXPLAIN on or off.
.genfkey ?OPTIONS?     Options are:
                         --no-drop: Do not drop old fkey triggers.
                         --ignore-errors: Ignore tables with fkey errors
                         --exec: Execute generated SQL immediately
                       See file tool/genfkey.README in the source
                       distribution for further information.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices TABLE         Show names of all indices on TABLE
.load FILE ?ENTRY?     Load an extension library
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.tables ?PATTERN?      List names of tables matching a LIKE pattern
.timeout MS            Try opening locked tables for MS milliseconds
.width NUM NUM ...     Set column widths for "column" mode
sqlite>

------解决方案--------------------
如果在程序中你可以通过 sqlite_master 表得到所有表的信息。

SQL code
sqlite> select type, name, tbl_name from sqlite_master order by type;
type|name|tbl_name
index|sqlite_autoindex_t1_1|t1
index|sqlite_autoindex_numtable_1|numtable
table|t1|t1
table|numtable|numtable
table|test|test
table|sqlite_stat1|sqlite_stat1
table|MailLabel|MailLabel
sqlite>

------解决方案--------------------
在SQLITE中可以通过
select * from sqlite_master
得到所有表名及建表SQL

如果在语言环境中可以通过ADO、ADOX得到所有字段名、表名
------解决方案--------------------
vba示例:
Dim cn As New ADODB.Connection
Dim ff1 As New ADOX.Catalog
Dim ff2 As New ADOX.Table
Dim ff3 As New ADOX.Column
ff = "DRIVER={SQLite3 ODBC Driver};Database=j:\temp\dd"
cn.Open ff
Set ff1.ActiveConnection = cn
For Each ff2 In ff1.Tables
If ff2.Type = "TABLE" Then
For Each ff3 In ff2.Columns
MsgBox ff2.Name & ff3.Name & ff3.Type
  
Next
End If

Next

------解决方案--------------------