社区
C++ Builder
帖子详情
ADOQuery1->ExecSQL()与ADOQuery1->Open()
petiteturbo
2005-06-10 02:16:52
哪位好心人给我讲讲ADOQuery1->ExecSQL()与ADOQuery1->Open()的具体区别啊???
...全文
297
11
打赏
收藏
ADOQuery1->ExecSQL()与ADOQuery1->Open()
哪位好心人给我讲讲ADOQuery1->ExecSQL()与ADOQuery1->Open()的具体区别啊???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weill
2005-06-11
打赏
举报
回复
唉呀呀呀……这种问题也要问啊……
用脚指头想想也明白吖……
petiteturbo
2005-06-11
打赏
举报
回复
谢谢大家!学习了
JXES智能生态系统
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()执行数据更新语句
insert
update
delete
ADOQuery1->Open()执行查询语句select
luobeyond
2005-06-10
打赏
举报
回复
sczyq的代码确实比较好
我也多了一点经验
我很高兴哦
第2次留言
发现留言比不留言要好
我发现你的代码改一下更加完善
你的代码
if (ADOQuery->SQL->Strings[0].SubString(1,6).UpperCase() == "SELECT")
这里可能会出现错误
把它改一下可能通用性更强
就是对前面空格的判断因为这样也是对的
" select * from......."
dddbryant
2005-06-10
打赏
举报
回复
同意楼上的
tsk
2005-06-10
打赏
举报
回复
返回结果集就是从数据库取到数据.暂存在缓存中,就把它当着暂存在ADOQuery中好了!!!
而不返回结果集,就是操作数据库,不读取数据,这样理解!
hunshihaichong
2005-06-10
打赏
举报
回复
To:luobeyond
我觉得你说的太简单了,虽然易懂
To: sunliwen780502
结果集是什么意思,我的SQL学得不好
谢谢
sunliwen780502
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()不返回结果集,主要是针对modify, insert,update, delete 等操作。
而ADOQuery1->Open(); 则返回届集,主要是执行查询操作。
sczyq
2005-06-10
打赏
举报
回复
关于三个通用通用的函数,其实没必要怎么复杂, ADOQuery->SQL 本身是TStrings 类型。
而从这里直接加入SQL语句,也更加容易读懂程序。主要是SQL语句出错的问题,因此,容错机制显得非常重要。
//---------------------------------------------------------------------------
bool __fastcall ExecSQLTry(TADOQuery *ADOQuery)
{
bool Succeeded = false;
if (ADOQuery->SQL->Count)
{
try
{
if (ADOQuery->SQL->Strings[0].SubString(1,6).UpperCase() == "SELECT")
ADOQuery->Open();
else ADOQuery->ExecSQL();
Succeeded = true;
}
catch ( Exception &E )
{
Succeeded = false;
RunTimeError(ADOQuery, E.Message // 异常处理函数,可用来显示或记录日志
+ "\n------------------------------\n"
+ ADOQuery->SQL->Text);
}
catch (...)
{
Succeeded = false;
RunTimeError(ADOQuery, ADOQuery->SQL->Text); // 出错处理
}
}
return Succeeded;
}
//---------------------------------------------------------------------------
luobeyond
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()执行数据更新语句
insert
update
delete
ADOQuery1->Open()执行查询语句select
luobeyond
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()执行数据更新语句
insert
update
delete
modify
上面所有的这些操作都是改变数据库的内容而不要返回结果
例如:
AnsiString sSql;
sSql = "insert into P_Contract_Tax values(1,'abc',3.7,"hello");
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add(sSql);
Query1->ExecSQL();
ADOQuery1->Open()执行查询语句select
例如:
Ansistring sSql;
sSql=”select * from stu.dbf”
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add(sSql);
Query1->Open();
下面是三个通用通用的函数,你写好后直接调用就好了:
执行数据更新语句
void __fastcall ExecuteSql(TADOQuery *Que,AnsiString sSQL)
{
if (Que->Active)
Que->Active=false;
if (Que->Filter!=""){Que->Filter="";}
if (Que->Filtered){Que->Filtered=false;}
Que->SQL->Clear();
Que->SQL->Add(sSQL);
Que->ExecSQL();
}
//---------------------------------------------------------------------------
void __fastcall ExecuteSql(TADOQuery *Que,TStringList *sSQL)
{
if (Que->Active)
Que->Active=false;
if (Que->Filter!=""){Que->Filter="";}
if (Que->Filtered){Que->Filtered=false;}
Que->SQL->Clear();
Que->SQL->Assign(sSQL);
Que->ExecSQL();
}
//---------------------------------------------------------------------------
//执行数据查询语句
void __fastcall ResultSql(TADOQuery *Que,AnsiString sSQL)//返回数据集
{
if (Que->Active) {Que->Active=FALSE;}
if (Que->Filter!=""){Que->Filter="";}
if (Que->Filtered){Que->Filtered=false;}
Que->SQL->Clear();
Que->SQL->Add(sSQL);
Que->ExecSQL();
try
{
Que->Active=true;
}
catch(...)
{
return;
}
}
经济批量订货决策系统
ado
query
1.Close;
ado
query
1.
SQL
.Text:='select * from cs';
ado
query
1.
Open
; a :=
ado
query
1.fieldbyname('a').Value;...................................//a、b参数的获取 b :=
ado
query
1....
exec
sql
; close;
Delphi创建
SQL
server数据库视图的例子.rar
Exec
SQL
;
SQL
.Clear;
SQL
.Add('Select * from ' Edit1.Text);
Open
; ShowMessage('视图创建' Edit1.Text '成功'); end; except showmessage('可能视图已存在'); end; end; //删除一个视图: ...
ADO
Query
1.
Open
Exec
SQL
内部区别
function T
ADO
Query
.
Exec
SQL
: Integer; begin InitializeMasterFields(Self); Command.
Exec
ute(FRowsAffected, EmptyParam); ... Result := FRowsAffected;...
ADO
Query
1.
Open
...
ADO
Query
1.
Exec
SQL
; d:\pr
将图片插入到
SQL
Server数据库
<br />--新建表image create table image(img_id int,img image) <br /> <br />拖控件<br />T
ADO
Query
<br />包含Jpeg.hpp<br />//存入图片...
ADO
Query
1->
SQL
->Add("insert into image values(:img_id,:img)");
ADO
Qu
C++Builder中采用
ADO
连接ms
sql
先添加一个
ADO
Connection(在
ADO
栏里),Name是
ADO
Connection1 选择...或者直接在程序开始的时候做个如下面那样的赋值,
sql
server 2000是这样的: this->
ADO
Connection1->ConnectionString = "Provider=
SQL
OLEDB.1
C++ Builder
13,822
社区成员
102,680
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章