如何用一个ADOQUERY或者ADODATASET控件 实现 SETSELECT INSERT DELETE UPDATA功能

geniusdhc 2007-05-13 09:27:41
好久没有使用CB,忘记怎么写了,
如何用一个ADOQUERY或者ADODATASET控件 实现 SETSELECT、INSERT、DELETE、UPDATA功能,
请大家帮忙!
...全文
287 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin___2008 2007-05-30
  • 打赏
  • 举报
回复
用ExeSQL()运行SQL语句,看Rowaffected属性,如果是-1就设Active为true。
有个缺点,如果是select查询就必须运行两遍
geniusdhc 2007-05-14
  • 打赏
  • 举报
回复
航控件的insert delete是怎样知道执行哪个语句的呢
geniusdhc 2007-05-14
  • 打赏
  • 举报
回复
如果是这样就只能临时把需要的语句写入ADOQuery1->SQL了?

那导航控件的insert delete是怎样知道执行哪个语句的呢?
i_love_pc 2007-05-14
  • 打赏
  • 举报
回复
没听说过这个功能,期待...
geniusdhc 2007-05-14
  • 打赏
  • 举报
回复
谢谢楼上,
我想做的是,把SETSELECT、INSERT、DELETE、UPDATA一起写进去,使用时候让控件自己判断,记得有这个属性呀,现在回想不起来了.
rainfall19831109 2007-05-14
  • 打赏
  • 举报
回复
有个比较笨的方法
就是自己子类化TADOQuery,然后增加一个属性,作为有纪录集返回与否的标志
然后提供一个激活的函数
里面根据这个标志来调用ExecSQL或者是Open
对于那个标志变量的确定就根据用户传入的SQL语句的首字符去判断

不过这样做有个缺点就是不能调用存储过程。。。
rainfall19831109 2007-05-13
  • 打赏
  • 举报
回复
使用TADOQuery,把SQL语句写到ADOQuery的SQL属性里
SQL属性是个TStirngList的对象,你可以先把用ADOQuery1->SQL->Clear()清除掉原来的SQL语句
然后把你需要操作的SQL语句用ADOQuery1->SQL->Add(/*SQL语句*/)添加
接着就可以激活这个ADOQuery进行操作了
如果是有纪录集返回的命令,就用ADOQuery1->Open()来激活
如果是无纪录返回的命令,就用ADOQuery1->ExecSQL()来激活。。

1,178

社区成员

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

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