各位我用ADOQuery 如何获得其中一个字段的类型(如 : 日期形,整形.....)
解决方案 »
- [专题]delhpi的子函数function- function-begin-end-begin-end在其他语言中的使用
- 如何让TWWDBCOMBOBOX有TDBCOMBOBOX的ONSELECT方法?
- 怎么把设计期间的quickreport的控件的边框去掉,还有边边上讨厌的标尺
- 有谁有DELHPI发短信的源码
- 大虾懂圆台,圆柱,圆锥,斜面的画法马,delphi或 c++builder 小女子感激有报酬
- 错误提示:record/key deleted,谁有高见?来着有分!!!
- 谁能推荐一款电子邮件服务器,具体要求内详~~~
- 讨论一下怎么实现管理中多对多的关系。
- 自做元件时怎样用代码生成报表
- Delphi 中如何制作平面按钮?
- 开发DELPHI组件,如何给自己开发的组件加载图标.
- Delphi和vb有什么区别?
edit1.text:='Integer'
else if ... then
edit1.text:='...'
...
使用ADOTable,s是结果!
for i:=0 to ADOTable.FieldDefs.Count-1 do
begin
s:='Field Index : '+IntToStr(i)+' -- <Name : '+ADOTable.FieldDefs.Items[i].Name+'> '+
'<Size : '+IntToStr(ADOTable.FieldDefs.Items[i].Size)+'>';
s:=s+'';
Case ADOTable.FieldDefs.Items[i].DataType of
ftUnknown : dt:='Unknown or undetermined';
ftString : dt:='Character or string field';
ftSmallint : dt:='16-bit integer field';
ftInteger : dt:='32-bit integer field';
ftWord : dt:='16-bit unsigned integer field';
ftBoolean : dt:='Boolean field';
ftFloat : dt:='Floating-point numeric field';
ftCurrency : dt:='Money field';
ftBCD : dt:='Binary-Coded Decimal field that can be converted to Currency type without a loss of precision.';
ftDate : dt:='Date field';
ftTime : dt:='Time field';
ftDateTime : dt:='Date and time field';
ftBytes : dt:='Fixed number of bytes (binary storage)';
ftVarBytes : dt:='Variable number of bytes (binary storage)';
ftAutoInc : dt:='Auto-incrementing 32-bit integer counter field';
ftBlob : dt:='Binary Large Object field';
ftMemo : dt:='Text memo field';
ftGraphic : dt:='Bitmap field';
ftFmtMemo : dt:='Formatted text memo field';
ftParadoxOle : dt:='Paradox OLE field';
ftDBaseOle : dt:='dBASE OLE field';
ftTypedBinary : dt:='Typed binary field';
ftCursor : dt:='Output cursor from an Oracle stored procedure (TParam only)';
ftFixedChar : dt:='Fixed character field';
ftWideString : dt:='Wide string field';
ftLargeint : dt:='Large integer field';
ftADT : dt:='Abstract Data Type field';
ftArray : dt:='Array field';
ftReference : dt:='REF field';
ftDataSet : dt:='DataSet field';
ftOraBlob : dt:='BLOB fields in Oracle 8 tables';
ftOraClob : dt:='CLOB fields in Oracle 8 tables';
ftVariant : dt:='Data of unknown or undetermined type';
ftInterface : dt:='References to interfaces (IUnknown)';
ftIDispatch : dt:='References to IDispatch interfaces';
ftGuid : dt:='globally unique identifier (GUID) values';
ftTimeStamp : dt:='Date and time field accessed through dbExpress';
ftFMTBcd : dt:='Binary-Coded Decimal field that is too large for ftBCD.';
end;
s:=s+' <Type : '+dt+'>';
info.add(s);
end;
i: integer;
s: string;
begin
s := '';
for i := 0 to query1.fieldcount-1 do
s := s+'Name:' + query1.fields[i].FieldName+' Type:'+query1.Fields[i].datatype;//<好像也可用fieldtype>
showmessage(s);
end;
Edit2.text:='ftString';
或 if Dataset.FieldByName(FieldName').DataType=ftstring then
edit2.text:='ftString';
來判斷字段的字段类型並顯示.
字段类型有如下:
TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid);
出错信息为 没有发现 a0201字段
但是a0201确实存在而且是DateTime类型,为什么会这样呢?