关于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.
这段信息是说,缺少返回值!但是我只是删除一个表,需要什么返回值呢?请问我怎样才能避免这个出错信息?

请各位大哥指导一下小弟!
先谢谢了!
...全文
26 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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()

1,178

社区成员

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

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