为什么在 VB6 中使用 SQL Server 和 SQLite 的查询不起作用?

Why an query in VB6 with SQL Server and SQLite does not work?

提问人:Temur 提问时间:4/12/2023 最后编辑:marc_sTemur 更新时间:4/13/2023 访问量:106

问:

我在 VB6 中有一个应用程序。该应用程序适用于 dbs SQL Server 和 SQLite。我为SQLite安装了ODBC驱动程序。我与dbs cn和cnsqlite建立了连接。应用必须筛选来自 SQL Server 的数据,创建一个新的空 db SQLite,并将数据插入到 db SQLite 中。我创建一个查询和一个命令

sqlStr2 = "Select * INTO " & rsad.Fields("Table_Name") & " FROM (select * from  [ODBC;Driver={SQL Server Native Client 10.0};Server=server2\SQLEXPRESS;Database=base1;uid=user;pwd=userpwd;].dbo." & rsad.Fields("Table_Name") & filter & ")"
cnsqlite.Execute sqlStr2, dbFailOnError

命令中的应用程序出现错误 只允许一个 SQL 语句

我在查询中删除了(select * from)。出现了同样的错误。在使用 db MS Access 之前,这些语句通常有效。 该怎么办?如何正确地编写查询?

铁木尔·雅库博夫

我在查询中删除了(select * from)。

sql-server sqlite VB6 语法错误

评论

2赞 nbk 4/12/2023
这回答了你的问题吗?sqlite 中的 SELECT INTO 语句
1赞 nbk 4/12/2023
因为 SQLite 不支持语法

答:

1赞 Kazi Mohammad Ali Nur Romel 4/12/2023 #1

而不是你需要使用select * intocreate table tablename as

sqlStr2 = "create table " & rsad.Fields("Table_Name") & " as select * FROM (select * from  [ODBC;Driver={SQL Server Native Client 10.0};Server=server2\SQLEXPRESS;Database=base1;uid=user;pwd=userpwd;].dbo." & rsad.Fields("Table_Name") & filter & ")"
cnsqlite.Execute sqlStr2, dbFailOnError

如果上述查询不起作用,那么您可以先尝试创建一个临时表,然后将其插入到所需的表中。

Dim sqlSubquery as String
sqlSubquery = "SELECT * FROM [ODBC;Driver={SQL Server Native Client 10.0};Server=server2\SQLEXPRESS;Database=base1;uid=user;pwd=userpwd;].dbo." & rsad.Fields("Table_Name") & filter
cnsqlite.Execute "CREATE TEMP TABLE temp_table AS " & sqlSubquery, dbFailOnError

'Select data from temporary table
Dim sqlMainQuery as String
sqlMainQuery = "create table " & rsad.Fields("Table_Name") &" 

as select * from temp_table” cnsqlite。执行 sqlMainQuery, dbFailOnError

评论

1赞 Jimmy Smith 4/13/2023
^ 2 可行的替代方案.SQL Lite 不支持所有标准 SQL,但问题仍然可以:)解决
0赞 Temur 4/14/2023
亲爱的卡兹·穆罕默德·阿里·努尔,我尝试了你的建议。两者都给出错误: near “.”: syntax error (1)