首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 数据库,读取字段 [已结贴,结贴人:GWI2005]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GWI2005
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-22 15:32:06 楼主
    表中某字段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的数据库使用刚刚入门??
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GWI2005
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:40:301楼 得分:0
    我的语句:unsigned long long temp  = adoq->FieldByName("MsgTextId")->Value;

    编译出错:
    E2015 Ambiguity between '_fastcall Variant::operator bool() const' and '_fastcall Variant::operator __int64() const'

     

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gongda777
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 19:05:062楼 得分:0
    unsigned long long temp 
    两个long是什么意思?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tangx100
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 11:22:543楼 得分:0
    unsigned long  temp
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jxw1987628
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-08-25 13:02:364楼 得分:0
    去掉1个long 或者用long long temp;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • keiy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

      7

      5

    发表于:2008-08-25 13:32:075楼 得分:10
    改:
    unsigned long long temp  =(__int64) adoq->FieldByName("MsgTextId")->Value;
    就可以了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yang_zhenghua
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 23:09:456楼 得分:10
    //取出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;

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiazai85379885
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-09 09:22:577楼 得分:0
    结贴还能继续发帖么?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved