• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

有关TQuery的查询与插入的问题,有些头痛!

wolf416 2001-09-11 02:24:37
用TQuery,TDataSource和TDBGrid,通过SQL将所查询的记录放在TDBGrid中,另外也通过SQL将记录插入表中,但插入所用的表与查询所用的表是相同的表。
但在不断有记录插入的时候,界面不断地闪烁,有时也出现违例,不知应该怎么办?
查询和插入的代码如下:
void __fastcall TfrmLog::ButtonQueryClick(TObject *Sender)
{
try{
AnsiString s;
AnsiString strQuery;
AnsiString strUser;
AnsiString strType;
AnsiString strSortName;
AnsiString strSortType;
strSortName=ComboBoxSort->Text;
if(RadioButtonASC->Checked)
strSortType="ASC";
else
strSortType="DESC";

if(ComboBoxUser->Text=="All User")
strUser="%";
else strUser=ComboBoxUser->Text;
if(ComboBoxType->Text=="All Type")
strType="%";
else strType=ComboBoxType->Text;

s= "where OperateTime>'"+Edit1->Text+"'" +" And OperateTime <'"+Edit2->Text+"'";
s+=" and UserName like '"+strUser+"'";
s+=" and Type like '"+strType+"'";
strDeleteCondition=s;
s+=" Order by "+strSortName;
s+=" "+strSortType;
strQueryCondition=s;
strQuery="select * from logs "+strQueryCondition;
LogQuery->Close();
LogQuery->SQL->Clear();
LogQuery->SQL->Add(strQuery);
LogQuery->Open();
}
catch(...)
{
ShowMessage("Query DB failed!");
}
}

void __fastcall TfrmLog::InsertLogToDB(PLOGRECORD plr)
{

try{
LogQuery->Close();
LogQuery->SQL->Clear();
LogQuery->SQL->Add("Insert into logs(UserName,Type,Target,Operation) ");
LogQuery->SQL->Add(" values(:UserName,:Type,:Target,:Operation)");
LogQuery->ParamByName("UserName")->AsString=plr->strUser;
LogQuery->ParamByName("Type")->AsString=plr->strType;
LogQuery->ParamByName("Target")->AsString=plr->strTarget;
LogQuery->ParamByName("Operation")->AsString=plr->strOperation;
if(!LogQuery->Prepared)
LogQuery->Prepare();
LogQuery->ExecSQL();

}
catch(...)
{

ShowMessage("Insert a record to DB failed!");
}

}
...全文
105 点赞 收藏 3
写回复
3 条回复
wyb_45 2001年09月12日
两个TQuery,(一个插入,一个查询)
一个执行插入成功后,将查询的TQuery进行一句Open();即可。(记住,只有一句Open();)。
我在操作数据库(主要是ORACLE)上有相当长一段时间了,欢迎交流。
wang_yb@chinese.com
回复 点赞
wolf416 2001年09月11日
我用两个TQuery来分别完成插入与查询,也有问题
回复 点赞
wjzhuang 2001年09月11日
程序没错.
但是为何要把查询和插入的操作做在同一个界面上呢?
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2563

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告