这个字段类型怎么了ftString

fireworld 2002-01-16 08:12:54
sybase数据库,
跟踪字段类型喂ftString
值为“推迟”。
就是InsertRecord时报“字段类型不比配”。
大家帮忙,我在线等候
while not query2.Eof do
begin
aField := TField.Create(nil);
aField.SetFieldType(query2.Fields[0].DataType) ;
aField.FieldName := query2.fields[1].fieldname ;
cds1.Fields.add(afield);
cds1.CreateDataSet ;
cds1.InsertRecord([query2.fieldbyname('JGMC').asstring]);
query2.Next;
end;
query1.Next;
...全文
177 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fireworld 2002-01-16
  • 打赏
  • 举报
回复
呵呵,小新说的对,我也刚发现,真是丢人啊。
我在试你的代码。先谢谢了。有qq吗?交个朋友,我也是帮朋友问的。
等你来qq:16218085
cobi 2002-01-16
  • 打赏
  • 举报
回复
试一下以下代码,是动态创建clientdataset的
for i := 0 to dm1.QryMain.FieldCount - 1 do
begin
with dm1.CDSTmp.Fielddefs.AddFieldDef do
begin
name := dm1.QryMain.Fields[i].FieldName;
datatype := dm1.QryMain.Fields[i].DataType;
required := dm1.QryMain.Fields[i].required;
end;
end;

而且你的代码犯了逻辑性错误,你应该是创建了clientdataset之后才赋值的,而你现在吧创建的代码也写在其中,会出问题的

aField := TField.Create(nil);
aField.SetFieldType(query2.Fields[0].DataType) ;
aField.FieldName := query2.fields[1].fieldname ;
cds1.Fields.add(afield);
cds1.CreateDataSet ;

while not query2.Eof do
begin
cds1.InsertRecord([query2.fieldbyname('JGMC').asstring]);
cds1.post;
query2.Next;
end;
fireworld 2002-01-16
  • 打赏
  • 举报
回复
怎么没有人帮我了,大家都来啊
fireworld 2002-01-16
  • 打赏
  • 举报
回复
但我是要动态的创建啊,那在创建之前必须先针对他的类型创建相应的字段对象吗?
movingboy 2002-01-16
  • 打赏
  • 举报
回复
不要用TField,应该用TStringField,TFloatField等。
fireworld 2002-01-16
  • 打赏
  • 举报
回复
镇没有人帮我吗?up
fireworld 2002-01-16
  • 打赏
  • 举报
回复
高手们,你们干什么去了?
fireworld 2002-01-16
  • 打赏
  • 举报
回复
兄弟帮帮忙啊。我做完了才能下班啊

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧