mysql - 如何获取TADOQuery中字段的长度?

标签 mysql delphi delphi-7

比如我可以获取某个字段的值。但是是否可以查出该字段的长度呢?

MyQuery.Fields[0].Value; // contains the value of the field

最佳答案

字段大小可以从 Field.Size 获取,如果此值为 0 Size,则它是您使用 Field.Datasize 的固定类型。

简短示例:

uses TypInfo;

Procedure DisplayFieldInfos(DS:TDataset;List:TStrings);
var
 i:Integer;
 Function GetSize(F:Tfield):Integer;
  begin
    Result := F.Size;
    if Result=0 then Result := F.DataSize;
  end;
begin
  for I := 0 to DS.FieldCount - 1 do
      begin  // display Fieldname [Datatype] : Size
        List.Add(Format('%s [%s] :  %d',
                [
                DS.Fields[i].FieldName,
                GetEnumName(TypeInfo(TFieldType), integer(DS.Fields[i].Datatype)),
                GetSize(DS.Fields[i])
                ]));
      end;
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
 DisplayFieldInfos(ADS,Memo1.Lines)
end;

关于mysql - 如何获取TADOQuery中字段的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16094766/

相关文章:

MySQL errno 150 尚未解决

c# - 使用 Visual Studio 2010 更新 edmx 非常慢

php - 照片上传在本地主机上工作但在服务器上不起作用?

delphi - 如何在不丢失系统主题的情况下修复TPageControl背景颜色?

delphi - 如何访问嵌套样式控件

excel - 自定义从delphi导入的excel文件

delphi - Indy SMTP Connect 在不同 PC 上的处理方式不同

php - PDO 变量在查询中不起作用,但静态值有效

delphi - 当我尝试从表单 A 显示表单 B 时,为什么编译器会显示 "undeclared identifier"?

delphi - Unicode/WideString 气球托盘