C++Builder 程序员博客
26 Aug
表中某字段MsgTextId是设计的标识位,每添加一次记录,该字段的记录自动加1。
每次添加记录后,需要读出该次记录下该字段MsgTextId的值。
代码如下:
/*添加数据*/
TADOCommand * adoCommand = new TADOCommand(0);
adoCommand->Connection = m_adoConnection;
adoCommand->CommandType = cmdText;
WideString Add_sql = "insert into MsgPgText Values("
+ pInfo->SrcUserName + ","
+ pInfo->SrcIp + ")";
adoCommand->CommandText = Add_sql;
adoCommand->Execute();
delete( adoCommand );
/*读取字段的值*/
TADOQuery *adoq = new TADOQuery(NULL);
adoq->Connection = m_adoConnection;
adoq->Close();
adoq->SQL->Clear();
WideString find_sql = "select MsgTextId from MsgPgText where SrcUserName = '"
+ pInfo->SrcUserName +"' and SrcIp = '" + pInfo->SrcIp + "'";
adoq->SQL->Add(find_sql);
adoq->Prepared=true;
adoq->Open();
问题1.怎么利用TADOQuery读取出MsgTextId该字段下的值;该字段类型是bigint的。
2.我的添加记录和读取记录是通过两个控件实现,能否把这两个操作在一个控件中实现。
谢谢。请大家能否有实例代码教教我,关于BCB的数据库使用刚刚入门??
unsigned long long temp
两个long是什么意思?
unsigned long temp
去掉1个long 或者用long long temp;
改:
unsigned long long temp =(__int64) adoq->FieldByName("MsgTextId")->Value;
就可以了
//取出ID值
AnsiString id,sql;
sql="select MsgTextId from tab order by abs(MsgTextId)";
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sql);
ADOQuery1->Active=true;
ADOQuery1->Last();
id=ADOQuery1->FieldByName("MsgTextId")->AsString;