怎么在delphi中执行SQL数据库脚本文件 ( 积分: 30 )

  • 主题发起人 主题发起人 jialiguo
  • 开始时间 开始时间
J

jialiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
我在查询分析器中能执行脚本
但到了delphi中就不能执行了
如果有用到isql命令请写出全面的代码
不然我不会:),谢谢
 
请说的再详细些
 
isql
[-?] |
[-L] |
[
{
{-U login_id [-P password]}
| -E
}
[-S server_name] [-H wksta_name] [-d db_name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-x max_text_size]
[-c cmd_end] [-q "query"] [-Q "query"]
[-n] [-m error_level] [-r {0 | 1}]
[-i input_file] [-o output_file] [-p]
[-b] [-O]
]



osql
[-?] |
[-L] |
[
{
{-U login_id [-P password]}
| -E
}
[-S server_name[/instance_name]] [-H wksta_name] [-d db_name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-I] [-D data_source_name]
[-c cmd_end] [-q "query"] [-Q "query"]
[-n] [-m error_level] [-r {0 | 1}]
[-i input_file] [-o output_file] [-p]
[-b] [-u] [-R] [-O]
]

osql -U sa -P myins -S "(local)/myins" -i CreateDB.sql
 
你放一个ADOCONNECTION 和一个ADOQUERY控件,ADOCONNECTION 用于连接数据库,在ADOQUERY中的SQL那里添加你要用到的SQL语句,试下就知道了啊
 
晕了
语法啊
 
osql -U sa -P myins -S "(local)/myins" -i CreateDB.sql
 
to dennyshao001,
我试多少次了
 
帮助看不懂?不会吧。
下面的就是个例子。
osql -U sa -P myins -S "(local)/myins" -i CreateDB.sql

用adoquery的话得自己去解析,一下全部执行肯定不行;应以go为分割点,一条一条执行,
执行的语句不能带go。这种自己解析的好处就是可以把详细的错误信息写到自己建的log中。
而sql server自带的工具isql和osql却不行。
 
首先請確定你有沒有權限先。再確認語法是否正確。
 
去掉GO 语句。。。。
 
要直接执行一个有GO的SQL 脚本,可以这样做,读到TStringList后判断某行为GO的就把这行前的SQL到ADOQuery里执行后,再从这行后再开始重新判断
memExec := TStringList.Create;
s := TStringList.Create;
memExec.LoadFromFile('aaa.sql');
s.Clear;
for i := 0 to memExec.Count - 1 do
begin
if UpperCase(Trim(memExec.Strings)) <> '' then
begin
if UpperCase(Trim(memExec.Strings)) <> 'GO' then
s.Add(memExec.Strings)
else if UpperCase(Trim(memExec.Strings)) = 'GO' then
begin
ADOQuery1.SQL.Text := s.Text;
s.Clear;
end;
end;
end;
s.Free;
memExec.Free;
这段代码你自己改改吧
 
接受答案了.
 
后退
顶部