例如,我可以获得某个字段的值。但是有可能找出场地的长度吗?
MyQuery.Fields[0].Value; // contains the value of the field
答案 0 :(得分:2)
字段大小可以从Field.Size获取,如果此值为0大小它是您使用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;
答案 1 :(得分:0)
看看
ADOQuery1.FieldDefList.FieldDefs[0].Size
看看那是否能满足您的需求。
答案 2 :(得分:0)
您可以直接从MySQL查询信息
SELECT column_name, column_type, character_maximum_length
FROM information_schema.columns
WHERE table_name = '...'
AND table_schema = '...'
只需提供table_name
和table_schema
,它就会返回所有列及其长度(至少是字符串列的长度)。
答案 3 :(得分:0)
此代码与我合作:
My_Query.Close;
My_Query.SQL.Text :='select * From My_Table';
My_Query.Open;
Edit1.Text:= IntToStr(My_Query.FieldByName('My_Field').Size);