在企业管理器中,我把数据库导入为sql文件,我在delphi中用tadoQuery实现数据库的新建,新建数据库时用导出的sql文件,运行时却要报错?什么原因?
If opendialog1.Execute then
begin
sqlfile:=opendialog1.FileName;//打开sql文件
if dbconn.Connected then
if fileexists(sqlfile) then
begin
query.sql.clear;
query.SQL.add(sqlfile);
query.ExecSQL;//根据sql语句建立数据库,表,用户等相关数据库对象
end
else
Application.MessageBox('SQL文件不存在', '找不到!', MB_OK);
end;
If opendialog1.Execute then
begin
sqlfile:=opendialog1.FileName;//打开sql文件
if dbconn.Connected then
if fileexists(sqlfile) then
begin
query.sql.clear;
query.SQL.add(sqlfile);
query.ExecSQL;//根据sql语句建立数据库,表,用户等相关数据库对象
end
else
Application.MessageBox('SQL文件不存在', '找不到!', MB_OK);
end;
var
SQLFile: TextFile;
SQLString: String;
begin
if OpenDialog1.Execute do
begin
AssignFile(SQLFile,OpenDialog1.FileName);
try
Reset(SQLFiel);
Read(SQLFile,SQLString);
finally
Close(SQLFile);
end;
with ADOQuery1 do
begin
Close;
Prepared := False;
SQL.Clear;
SQL.Text := SQLString;
Prepared := True;
ExecSQL;
end;
end;
end;
===================================
大概应该是这个样子才可以的!我没有测试!不过应该没有问题!
上面应该是:
……
if OpenDialog1.Execute then
……
================================
一个幼稚的错误!
var
SQLFile: TextFile;
SQLString: String;
begin
if OpenDialog1.Execute then
begin
AssignFile(SQLFile,OpenDialog1.FileName);
try
Reset(SQLFiel);
Read(SQLFile,SQLString);
finally
Close(SQLFile);
end;
with ADOQuery1 do
begin
Close;
Prepared := False;
SQL.Clear;
SQL.Text := SQLString;
Prepared := True;
ExecSQL;
end;
end;
end;
兄弟够狠的!几乎一个字都不改!
……
AssignFile(SQLFile,OpenDialog1.FileName);
try
Reset(SQLFiel);
Read(SQLFile,SQLString);
finally
Close(SQLFile);
end;
……
这个明显就有错误!
应该是:
……
AssignFile(SQLFile,OpenDialog1.FileName);
try
Reset(SQLFile);
Read(SQLFile,SQLString);
finally
CloseFile(SQLFile);
end;
……
If opendialog1.Execute then
begin
sqlfile:=opendialog1.FileName;//打开sql文件
if dbconn.Connected then
if fileexists(sqlfile) then
begin
query.sql.clear;
query.SQL.LoadFromFile(sqlfile);
query.ExecSQL;//根据sql语句建立数据库,表,用户等相关数据库对象
end
else
Application.MessageBox('SQL文件不存在', '找不到!', MB_OK);
end;如果不成功,那么原因就是如hhzh426(春之风) 所说的。