大家看一下这个关于在delphi中自动 建库的代码问题??

dowms22 2003-08-23 05:04:10
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
sqlfile:textfile;
sqltext:string;
begin
AssignFile(sqlfile,'bb.sql');
Reset(sqlfile);
while not eof(sqlfile) do
begin
Readln(sqlfile,s);
sqltext:=s;
while (not eof(sqlfile)) and (uppercase(trim(s))<>'GO') do
begin
Readln(sqlfile, s);
if (uppercase(trim(s))<>'GO') then
sqltext:=sqltext+' '+s;
end;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sqltext);
adoquery1.ExecSQL;
end;
CloseFile(sqlfile);

application.MessageBox('数据库升级完成!','提示',MB_OK+MB_ICONINFORMATION);

end;


第一行:''付近有语法错误。
在编译时老是出现这段文字,哪位知道问题出在哪
...全文
33 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxl 2003-08-26
  • 打赏
  • 举报
回复
而且这个非法字符在“GO”附近
lxl 2003-08-26
  • 打赏
  • 举报
回复
如果你的MEMO1中有“一个乱码的字符”
强烈建议查看一下你的SQLFILE文件
中间可能输入了一些非法字符
MichealLee 2003-08-25
  • 打赏
  • 举报
回复
//AssignFile(sqlfile,'bb.sql');
//sqlfile:textfile;

---你的文件'bb.sql'的扩展名为.sql。 sqlfile又定义为textfile. 不对吧!

---不如把sql string存到bb.txt中。

dowms22 2003-08-25
  • 打赏
  • 举报
回复
呵呵,我知道你那代码的意思,但是在运行时程序没有错误 ,当我按时,出现那行错误,并且在memo1中根本就没有出现什么内容。只有一个乱码的字符。不知道是什么意思。 lxl(是我,不是风) ,你能不能在你的机子试一下?看行不行!如何行的话把代码贴出来 。谢了,呵 呵!!!
scsun 2003-08-25
  • 打赏
  • 举报
回复
试下面代码看看.

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
sqlfile:textfile;
sqltext:string;
begin

s := '';
sqltext:=s;
AssignFile(sqlfile,'bb.sql');
Reset(sqlfile);

try
while not eof(sqlfile) do
begin
Readln(sqlfile,s);
sqltext:=sqltext + #13#10 + s;
end;

showMessage (sqltext);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sqltext);
adoquery1.ExecSQL;
application.MessageBox('数据库升级完成!','提示',MB_OK+MB_ICONINFORMATION);

finally

CloseFile(sqlfile);
end;

end;
tongki 2003-08-25
  • 打赏
  • 举报
回复
很好办呀,你先用查询分析器执行你的BB.SQL里的所有语句,若没有错则可以的。
lxl 2003-08-24
  • 打赏
  • 举报
回复
呵呵
我给你的代码是看错误出现在哪里的
在出错了以后
看一看你的MEMO1的内容
就可以知道现在QUERY在哪个SQL语句中出错呀
不行的话
贴出出错时MEMO1的LINES来看看
dowms22 2003-08-23
  • 打赏
  • 举报
回复
不行啊 ,lxl(是我,不是风) 还是这样,第一交次运行还是会出现这种情况的:‘第一行:''付近有语法错误。’如果再运行一次则出现‘数据库升级完成!’,但是SQL 里面确没有BB数据库生成啊!什么原因啊????
wyr521 2003-08-23
  • 打赏
  • 举报
回复
跟踪调试啊
wdsimon 2003-08-23
  • 打赏
  • 举报
回复
从sqlfile读取完后,把sqltext SHOW出来或则写到一个LISTBOX检查一下哪里有问题。
lxl 2003-08-23
  • 打赏
  • 举报
回复
把这一改成
try
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sqltext);
adoquery1.ExecSQL;
except
memo1.lines.assign(adoquery1.sql);
end;
在出错时,可以看一看这个时候运行的是什么内容?
然后再看看你的SQLFILE是否要修改

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧