ADOCommand怎样批量执行sql语句,该怎么解决

 我来答
匿名用户
2015-07-10
展开全部

因为SQL脚本中的Go是单独成行的,所以比较好判断,另外脚本中最好不要含有注释语句,如果注释过长的话会换行,这样要多判断一次。
另外SQL脚本要是Ansi格式,不要生成Unicode的,否则不能正确运行。


  C/C++ code
 
 void __fastcall TForm1::Button1Click(TObject *Sender)
{

        TStringList * SQL = new TStringList;
        SQL->LoadFromFile(ExtractFilePath(Application->ExeName) + 
"SQLScript");

        ADOCommand1->CommandText = "";

        for(int i = 0; i < SQL->Count; i++)
        {
                //遇到GO语句,执行
                if(SQL->Strings[i] == "GO")
                        ADOCommand1->Execute();
                else
                //清除注释
                if(SQL->Strings[i].SubString(0,2) == "/*" || 
SQL->Strings[i].SubString(SQL->Strings[i].Length()-2 ,2) == "*/")
                {
                }
                else
                //不是GO,不是注释,不为空,则是SQL的执行语句
                if(SQL->Strings[i].Trim() != "" && 
SQL->Strings[i].Trim() != " " )
                        ADOCommand1->CommandText += 
SQL->Strings[i] + " ";
        }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式