紧急求助。ADOQuery->FieldByName("字段")的问题。

zhgwbzhd 2011-10-21 08:53:59
SQL Server数据库,bcb6开发。

ADOQuery控件。
读取int类型的字段用
ADOQuery->FieldByName("字段")->AsInteger;

但是读取bigint字段,也就是64位的该咋写啊??


ADOQuery->FieldByName("字段")->AsInt64;
报错啊。

报错如下:
[C++ Error] Unit1.cpp(878): E2316 'AsInt64' is not a member of 'TField'

谢谢啊!!
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zzbinfo 的回复:]

不好意思,我在2010里面看的有这个就给发出来了,呵呵
[/Quote]

看看哥这回答问题专业户的配置:C++Builder从 3.0 到 16.0 (注意是 16.0),所有版本都有安装。不管楼主用什么版本,我立马就有环境测试。
zzbinfo 2011-10-21
  • 打赏
  • 举报
回复
不好意思,我在2010里面看的有这个就给发出来了,呵呵
ccrun.com 2011-10-21
  • 打赏
  • 举报
回复
C++Builder6中的TADOQuery类没有AsLargeInt的方法,在后续的版本中才有。

楼主试试AsString,然后再StrToInt64转成__int64的数据。
cgl_lgs 2011-10-21
  • 打赏
  • 举报
回复
好像CB6没有largeint吧?
zzbinfo 2011-10-21
  • 打赏
  • 举报
回复
什么提示,我这里可以,你是什么开发环境.
zhgwbzhd 2011-10-21
  • 打赏
  • 举报
回复
不行啊
zzbinfo 2011-10-21
  • 打赏
  • 举报
回复
ADOQuery->FieldByName("字段")->AsLargeInt
zhgwbzhd 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ccrun 的回复:]
C++Builder6中的TADOQuery类没有AsLargeInt的方法,在后续的版本中才有。

楼主试试AsString,然后再StrToInt64转成__int64的数据。
[/Quote]

恩,谢谢老妖。
我就是用这个方法解决的啊。
再次谢谢。
七擒关羽 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ccrun 的回复:]
引用 6 楼 zzbinfo 的回复:

不好意思,我在2010里面看的有这个就给发出来了,呵呵


看看哥这回答问题专业户的配置:C++Builder从 3.0 到 16.0 (注意是 16.0),所有版本都有安装。不管楼主用什么版本,我立马就有环境测试。
[/Quote]

++
cgl_lgs 2011-10-21
  • 打赏
  • 举报
回复
哈哈,很多版本现在找都没处找去啦:)不愧为ccrun总管啊~~~~
我用过的最老的也就是5了~~~~
纯冰糖 2011-10-21
  • 打赏
  • 举报
回复
老妖 太专业了,呵呵
附录:源程序 //-------------------主窗体 查询与浏览--------------------------------------- #include #pragma hdrstop #include "Unit1.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" #include "Unit5.h" #include "Unit6.h" #pragma package(smart_init) #pragma resource "*.dfm" TFmain *Fmain; bool onshow=false; __fastcall TFmain::TFmain(TComponent* Owner) : TForm(Owner) { } void __fastcall TFmain::N5Click(TObject *Sender) { Close();//退出程序 } void __fastcall TFmain::SpeedButton3Click(TObject *Sender) { DataModule3->ADOQuery1->First() ; StatusBar1->Panels->Items[0]->Text="数据指向第一个"; } void __fastcall TFmain::SpeedButton1Click(TObject *Sender) { DataModule3->ADOQuery1->Prior() ; StatusBar1->Panels->Items[0]->Text="数据指向上一个"; } void __fastcall TFmain::SpeedButton2Click(TObject *Sender) { DataModule3->ADOQuery1->Next() ; StatusBar1->Panels->Items[0]->Text="数据指向下一个"; } void __fastcall TFmain::SpeedButton4Click(TObject *Sender) { DataModule3->ADOQuery1->Last() ; StatusBar1->Panels->Items[0]->Text="数据指向最后"; } void __fastcall TFmain::Button2Click(TObject *Sender) { //添加新的数据 Fadd->Caption="添加数据"; DataModule3->ADOQuery1->Append() ; Fadd->ShowModal() ; } void __fastcall TFmain::FormClose(TObject *Sender, TCloseAction &Action) { //对退出程序做确认处理 if(MessageBox(this->Handle,"确定要退出吗?","提示",MB_YESNO+MB_ICONQUESTION) == IDNO) Action=caNone; } void __fastcall TFmain::N10Click(TObject *Sender) { AboutBox->ShowModal() ; //显示关于对话框 } void __fastcall TFmain::Button4Click(TObject *Sender) { //以下为查找语句 AnsiString sql; if(Edit1->Text=="")return; if( ComboBox1->Text =="精确")sql=" ='"+Edit1->Text+"';"; else sql=" like '%"+Edit1->Text+"%';"; sql="select * from renshi where "+ComboBox2->Text+sql; StatusBar1->Panels->Items[0]->Text=sql; DataModule3->ADOQuery1->Active =false; DataModule3->ADOQuery1->SQL->Clear(); DataModule3->ADOQuery1->SQL->Add(sql); DataModule3->ADOQuery1->Active =true; if(DataModule3->ADOQuery1->RecordCount==0) StatusBar1->Panels->Items[1]->Text="无符合条件数据"; else StatusBar1->Panels->Items[1]->Text="符合条件数据个数为:"+IntToStr(DataModule3->ADOQuery1->RecordCount); } void __fastcall TFmain::Button6Click(TObject *Sender) { //以下为显示所有数据 AnsiString sql; sql="select * from renshi;"; StatusBar1->Panels->Items[0]->Text="显示全部数据"; DataModule3->ADOQuery1->Active =false; DataModule3->ADOQuery1->SQL->Clear(); DataModule3->ADOQuery1->SQL->Add(sql); DataModule3->ADOQuery1->Active =true; if(DataModule3->ADOQuery1->RecordCount==0) StatusBar1->Panels->Items[1]->Text="无符合条件数据"; else StatusBar1->Panels->Items[1]->Text="数据总量为:"+IntToStr(DataModule3->ADOQuery1->RecordCount); } void __fastcall TFmain::Button1Click(TObject *Sender) { //刷新显示 DataModule3->ADOQuery1->Active =false; DataModule3->ADOQuery1->Active =true; } void __fastcall TFmain::N9Click(TObject *Sender) { //帮助内容 ShowMessage("\ 大家好,虽然只是一个简单的程序但是也要写帮助。\n\ 简单的操作如下:\n\ 一、打开程序。\n\ 二、可以进行数据的添加、删除、浏览、查找\n\ 三、关闭。\n\ 谢谢使用!\n\ "); } void __fastcall TFmain::Button3Click(TObject *Sender) { //数据删除操作 AnsiString printstr="确定删除编号为"+DataModule3->ADOQuery1->FieldByName("编号")->AsString+"的数据吗?"; if(MessageDlg(printstr,mtWarning,TMsgDlgButtons() << mbOK <ADOQuery1->Delete() ; StatusBar1->Panels->Items[0]->Text="数据已经删除"; } } void __fastcall TFmain::N3Click(TObject *Sender) { //更改显示字体 if(FontDialog1->Execute())Fmain->Font=FontDialog1->Font; } void __fastcall TFmain::N12Click(TObject *Sender) { //更改窗体颜色 if(ColorDialog1->Execute()) { Fmain->Color=ColorDialog1->Color;//主窗体 Fadd->Color=ColorDialog1->Color; //添加、修改窗体 } } void __fastcall TFmain::N13Click(TObject *Sender) { //更改数据域颜色 if(ColorDialog1->Execute()) DBGrid1->Color=ColorDialog1->Color; } void __fastcall TFmain::N11Click(TObject *Sender) { Fshow->QuickRep1->Preview();//打印数据 } void __fastcall TFmain::Button5Click(TObject *Sender) { Fadd->Caption="修改数据"; Fadd->ShowModal() ; //修改数据 } void __fastcall TFmain::FormShow(TObject *Sender) { if(onshow==false) { Fwelcome->ShowModal() ; onshow=true; return; } } //-------------------------------------------------------------------------- //------------系统封面------------------------------------------------------ #include #pragma hdrstop #include "Unit2.h" #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TFwelcome *Fwelcome; int logintime=15; //进入系统等待时间X秒 __fastcall TFwelcome::TFwelcome(TComponent* Owner) : TForm(Owner) { } void __fastcall TFwelcome::Timer1Timer(TObject *Sender) { if(logintime==0){ Timer1->Enabled=false; Close(); } logintime--; SpeedButton1->Caption ="进入("+IntToStr(logintime)+")"; } void __fastcall TFwelcome::SpeedButton2Click(TObject *Sender) { Application->Terminate() ; } void __fastcall TFwelcome::SpeedButton1Click(TObject *Sender) { logintime=15; Timer1->Enabled=false; Close(); } //-------------------------------------------------------------------------- //---------------------数据修改窗体----------------------------------------- #include #pragma hdrstop #include "Unit4.h" #include "Unit3.h" #pragma package(smart_init) #pragma resource "*.dfm" TFadd *Fadd; __fastcall TFadd::TFadd(TComponent* Owner) : TForm(Owner) { } void __fastcall TFadd::Button1Click(TObject *Sender) { if(DBEdit1->Text =="")return; DataModule3->ADOQuery1->Refresh() ; Close(); } void __fastcall TFadd::Button2Click(TObject *Sender) { DataModule3->ADOQuery1->Cancel() ; Close(); } void __fastcall TFadd::FormClose(TObject *Sender, TCloseAction &Action) { DataModule3->ADOQuery1->Cancel() ; } //--------------------------------------------------------------------------
Delphi 点击Tree节点的某个选项后,右侧会对应显示出数据信息,左侧的树节点信息从Access数据库读取出来,实际上当我们单击左侧数据的时候,右侧数据同样是从Access数据库读取,只不过关联的ID,就是左侧的数据项,实现这一功能,对应的代码为:   procedure TForm1.TreeView1Click(Sender: TObject);   begin    with ADOQuery2 do    begin    Close;    SQL.Clear;    SQL.Add('Select * From msn where 姓名 =:a');    Parameters.ParamByName('a').Value:=TreeView1.Selected.Text;    Prepared;    open;    end;    if (ADOQuery2.RecordCount>0)and(Treeview1.Selected <> Nil) then    with ADOQuery2 do    begin    Edit1.Text:=ADOQuery2.fieldbyname('ID').AsString;    Edit2.Text:=ADOQuery2.fieldbyname('姓名').AsString;    Combobox1.Text:=ADOQuery2.fieldbyname('性别').AsString;    DatetimePicker1.Date:=ADOQuery2.fieldbyname('出生日期').Value;    Edit3.Text:=ADOQuery2.fieldbyname('民族').AsString;    Edit4.Text:=ADOQuery2.fieldbyname('家庭电话').AsString;    Edit5.Text:=ADOQuery2.fieldbyname('手机号码').AsString;    Edit6.Text:=ADOQuery2.fieldbyname('QQ号码').AsString;    Edit7.Text:=ADOQuery2.fieldbyname('E_mail').AsString;    Memo1.Lines.Text:=ADOQuery2.fieldbyname('备注').AsString;    Combobox2.Text:=ADOQuery2.fieldbyname('类型').AsString;    end;   end;

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧