表中某字段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;