处理TADOQuery查询返回的Null值

     在Delphi中,TADOQuery查询返回值为Null时,不能赋值给对应类型。比如,在Delphi中:       

   var

      s Value : string;

   ...

   sValue := FieldValues[sFiledName];

 

    我写了一个类TDBAQuery ,来代替ADOQuery。

  TDBAQuery = class(TADOQuery)
  private
    function GetFieldValue(const sFieldName: string): Variant;
  public
     property FieldValues[const FieldName: string]: Variant
       read GetFieldValue; default;
  end;

...

{ TDBAQuery }

function TDBAQuery.GetFieldValue(const sFieldName: string): Variant;
var
  AField: TField;
begin
  //处理Null值
  AField := FieldByName(sFieldName);
  if AField.IsNull then
    Result := ''
  else
    Result := inherited FieldValues[sFieldName];
end;

 

这样,便可以按TQuery的方式处理Null值,用('')值填充Null。
   将提示错误“  Could not convert variant of type (Null) into type (String)”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi 中,您可以使用 TADOQuery 和 TADOConnection 组件进行数据关联,以实现数据库的连接和查询操作。以下是一个简单的示例: 1. 在窗体上放置 TADOConnection 和 TADOQuery 组件,并设置相关属性。 2. 在窗体的 OnCreate 事件中,建立数据库连接。 ```delphi procedure TForm1.FormCreate(Sender: TObject); begin ADOConnection1.ConnectionString := 'Provider=SQLOLEDB;Data Source=YourServer;Initial Catalog=YourDatabase;User ID=YourUsername;Password=YourPassword'; ADOConnection1.Connected := True; end; ``` 替换上述代码中的连接字符串(ConnectionString)中的服务器、数据库、用户名和密码为您实际使用的。 3. 在需要执行查询的地方,设置 ADOQuery 的连接,并编写查询语句。 ```delphi ADOQuery1.Connection := ADOConnection1; ADOQuery1.SQL.Text := 'SELECT * FROM YourTable'; ADOQuery1.Open; ``` 上述代码将查询结果存储在 ADOQuery1 中。 4. 使用查询结果进行操作,例如将数据显示在控件中。 ```delphi while not ADOQuery1.Eof do begin // 读取数据并进行处理 // 例如:将数据显示在 Memo1 控件中 Memo1.Lines.Add(ADOQuery1.FieldByName('FieldName').AsString); ADOQuery1.Next; end; ``` 请注意,上述示例假设您已经在窗体上放置了 TADOConnection(名为 ADOConnection1)和 TADOQuery(名为 ADOQuery1)组件,并正确配置了连接字符串。 希望以上信息对您有所帮助。如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值