关于SQL导入与BCB的问题!

gzyip 2003-06-26 05:23:42
小弟,刚接触SQL,现在有三个问题想请教各位大哥!
请各位大哥指导小弟一下!

问题1:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("CREATE TABLE test.dbo.detail ([a] varchar (255) NULL,[b] varchar (255) NULL,[c] varchar (255) NULL,[d] varchar (255) NULL,[e] varchar (255) NULL,[f] varchar (255) NULL,[g] varchar (255) NULL,[h] varchar (255) NULL,[i] varchar (255) NULL)");
ADOQuery1->SQL->Add("EXEC master..xp_cmdshell \'bcp test.dbo.detail in c:\\txt\\detail.txt -c -F2 -S(local) -T\'");
ADOQuery1->Open();
我这样的导入方法有没有问题?我见有些书上还有一句SQL语句是INSERT,我这里需要吗?如果需要那么请问要怎样写呢?

问题2:
我能用控件TProgressBar来显示导入进度吗?如果能,那么请问代码应该怎样写呢?

问题3:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("drop table dbo.detail");
ADOQuery1->Open();
这段代码,可以实现删除数据库中的detail表,但是每次运行后,总会出现错误,错误信息是:ADOQuery1:CommandText does not return a result set.
这段信息是说,缺少返回值!但是我只是删除一个表,需要什么返回值呢?请问我怎样才能避免这个出错信息?

请各位大哥指导一下小弟!
先谢谢了!
...全文
6 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mee123456 2003-06-28
你可以改用显示一窗体:
if(FrmMsg==NULL)
FrmMsg=new TFrmMsg(FrmMsg);
FrmMsg->Label_Msg->Caption="开始执行.....";
FrmMsg->Show();
....
FrmMsg->Label_Msg->Caption="正在....";
FrmMsg->Refresh();
.....
FrmMsg->Label_Msg->Caption="...完毕.";
FrmMsg->Refresh();
FrmMsg->Close();
回复
mee123456 2003-06-28
执行一条语句没办法用:
不过你可以视觉上欺骗
if(Form1==NULL)
Form1=new TForm1(Form1);
Form1->ProgressBar1->Max=10;
Form1->ProgressBar1->Step=1;
From1->ProgressBar1->Position=1;
Form1->Show();
//执行代码

在Form1的OnShow函数里
for(int i=1;i<Form1->ProgressBar1->Max;i++)
Form1->ProgressBar1->StepBy(1);
回复
gzyip 2003-06-27
UP
回复
gzyip 2003-06-26
我真的很需要导入进度条,真的没有办法?
回复
lvjack 2003-06-26
错了以上,我写的ADOQuery1->ExeSQL();都是 ADOQuery1->ExecSQL();
回复
lvjack 2003-06-26
感觉问题1:这样
ADOQuery1->SQL->Add("CREATE TABLE test.dbo.detail ([a] varchar (255) NULL,[b] varchar (255) NULL,[c] varchar (255) NULL,[d] varchar (255) NULL,[e] varchar (255) NULL,[f] varchar (255) NULL,[g] varchar (255) NULL,[h] varchar (255) NULL,[i] varchar (255) NULL)");

ADOQuery1->ExeSQL();

ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("EXEC master..xp_cmdshell \'bcp test.dbo.detail in c:\\txt\\detail.txt -c -F2 -S(local) -T\'");
ADOQuery1->ExeSQL();

导入进度好像作不了。要是能得到数据库导入信息时的进度反馈就可以做进度了
回复
zhpsam109 2003-06-26
问题3
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("drop table dbo.detail");
ADOQuery1->ExecSQL();

回复
lvjack 2003-06-26
没有返回记录集的操作用ADOQuery1->ExeSQL()
回复
相关推荐
发帖
数据库及相关技术
创建于2007-08-02

1159

社区成员

C++ Builder 数据库及相关技术
申请成为版主
帖子事件
创建了帖子
2003-06-26 05:23
社区公告
暂无公告