【发布时间】:2013-04-16 22:14:36
【问题描述】:
我有一个连接到 MySQL 数据库的 delphi 应用程序,但是,我想为我的最终用户创建一个简单的方法来实现 MySQL 数据库。我考虑在我的应用程序中创建一个按钮,用户可以按下该按钮来删除 scehma 的任何当前实例,并使用我的应用程序运行所需的正确表和列创建一个新模式。
我已经编写了创建新数据库的代码。如下:
CREATE SCHEMA IF NOT EXISTS fakeschema;
USE fakeschema;
CREATE TABLE table1
(IDtable1 int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Line1 varchar(45),
Line2 varchar(45));
代码在 MySQL 中正常运行,但是在执行代码时收到 SQL 语法错误。我得到了:
'USE fakeschema; 附近的 SQL 语法错误; CREATE TABLE table1 (IDtable1 int(11) PRIMARY KEY NO'
我正在使用ADOConnection 链接到数据源。按下按钮后,我正在编写连接字符串。我正在使用ADOQuery 来执行 SQL 代码。
这是我用来连接数据库的代码的 sn-p:
ADOC.ConnectionString := 'PROVIDER = MSDASQL; DRIVER={MySQL ODBC 3.51 Driver};
SERVER=localhost; Data Source=faketest; DATABASE=fakeschema; USER ID=root;
PASSWORD=pass; OPTION=3;';
ADOC.DefaultDatabase := 'fakeschema';
ADOC.Connected := True;
我是否使用了错误的工具/方法?我是 MySQL 新手,目前正在学习 Delphi。
【问题讨论】:
-
“我收到一个 SQL 语法错误”而不发布您收到的具体错误消息是没有意义的。请edit您的问题并附上exact错误信息。谢谢。
-
@KenWhite 我已经进行了编辑。谢谢
-
@KenWhite 我明白你的意思。过去我遇到了很多麻烦,我需要做的就是编辑几个字符。但是,这里的情况似乎并非如此。我尝试删除 auto_inc 和 notnull,并尝试从
line1部分开始列括号,以便完全删除 id 行......但运气不好。两者都提供完全相同的错误,只是显示了相应的代码行。 -
您是否需要使用与 TAdoQuery 不同的组件?它可能一次只需要执行一条语句。我知道使用 Interbase/Firebird 样式,您需要使用 TIBScript 组件“一次”执行多个语句。但我不知道。只是猜测
-
忽略我最后的评论。 documentation 并不清楚这里需要什么。我还在四处挖掘。 :-)