怎样用程序知道某个字段的类型(20分)

  • 主题发起人 主题发起人 lcl800
  • 开始时间 开始时间
L

lcl800

Unregistered / Unconfirmed
GUEST, unregistred user!
用下列代码判断一个ACCESS表中的字段类型,总是检测不到
access中的文本类型字段。检测文本字段的代码应该如何写?
怎样用程序知道某个字段的类型if fields[iField].DataType=ftString then begin
if fields[iField].asString<>'' then
_str:=_str+''''+fields[iField].asString+''''
else
_str:=_str+'NULL';
end;
 
先把所有字段的类型显示出来,再对照一下不就清楚了.^_^
 
如何显示字段的字段类型? 用什么函数?
 
好像没有,用if fields[iField].DataType=ftString 类似的条件语句判断。
 
用ADOX很容易作到啊,李维的书上有例子哟,
 
我原来用了个笨办法找数据库类型和delphi fieldtype之间的对应关系。
先建立一个每个字段一种不同类型的表, 然后用delphi用最简单的方法写几句代码, 打开哪个表, 用个循环取得各field的datatype.
这样就找到它们之间的对应关系了。
 
除了文本类型字段判断错误之外,其他字段的判断是正确的
if dbg.fields[iField].DataType=ftInteger then//正确
qryInsert.sql.add(inttostr
(dbg.fields[iField].asInteger));
if dbg.fields[iField].DataType=ftFloat then//正确
qryInsert.sql.add(floattostr
(dbg.fields[iField].asFloat));
if dbg.fields[iField].DataType=ftDate then//正确
qryInsert.sql.add(''''+datetostr
(dbg.fields[iField].asDateTime)+'''');
if dbg.fields[iField].DataType=ftString then begin//不正确!!
if dbg.fields[iField].asString<>'' then
qryInsert.sql.add(''''+dbg.fields
[iField].asString+'''')
else
qryInsert.sql.add('NULL');
end;
 
多人接受答案了。
 
后退
顶部