解决方案 »
- delphi 做了一个管理系统,想在登陆的时候,提示会员生日,要怎么做
- 关于adoquery.Locate的问题
- Delphi 5 的帮助文件用什么控件做?怎么用?
- 从一个数组中怎么取一个记录出来.
- 激活OleContainer中Word对象及获取Word中选中文字:
- 请问程序执行结束,跳出runtime error 216 at ……这个错误是存取非法,我该怎么解决呢?
- 如何在delphi7中编写语句向access表中添加记录
- 求助,Delphi的错误
- 关于c/s模式数据库的问题??
- 怎么将程序最小化到系统托盘
- 请教关于TIdFTP的ChangeDir()中处理映射目录的问题。
- delphi访问oracle9i表里char字段的问题
IntegerField := TIntegerField.Create(dm);
IntegerField.FieldKind :=fkInternalCalc ;
IntegerField.FieldName := '序号';
IntegerField.Name := 'ID';
IntegerField.DisplayWidth :=4;
IntegerField.DataSet := dm;
end; begin
Field := TStringField.Create(dm);
Field.FieldKind := fkData ;
Field.FieldName := 'ID1';
Field.Name := 'ID1';
Field.DisplayWidth :=10;
Field.Size :=20;
//Field.DisplayLabel :='部门编号' ;
Field.DataSet := dm;
end;我估计你的字段都不存在
for i := 0 to Query.FieldCount - 1 do
begin
cds.Fields[i].AsVariant := Query.Fields[i].AsVariant;
end;
改成for i := 0 to Query.RecordCount - 1 do
begin
for i := 0 to Query.FieldCount - 1 do
begin
cds.append;
cds.Fields[i].AsVariant := Query.Fields[i].AsVariant;
cds.post;
end; end;应该就行了!
问题出在这一段:
for i := 0 to Query.FieldCount - 1 do
begin
aDataType := Query.Fields[i].DataType;
cds.FieldDefs.Add(Query.Fields[i].FieldName, aDataType);
end;这里的aDataType在add的时候要根据实际的aDataType不同,定义不同的长度等选项。具体add的语法不同。计算datatype的size也不相同。
我的数据比较简单,用了下面的代码,简单处理了几种类型for i := 0 to Query.FieldCount - 1 do
begin
aDataType := Query.Fields[i].DataType;
case aDataType of
ftString: cds.FieldDefs.Add(Query.Fields[i].FieldName, aDataType, Query.Fields[i].Size);
ftBCD: cds.FieldDefs.Add(Query.Fields[i].FieldName, ftString, Query.Fields[i].Size);
ftWideString: cds.FieldDefs.Add(Query.Fields[i].FieldName,aDataType,Query.Fields[i].Size);
else
cds.FieldDefs.Add(Query.Fields[i].FieldName, aDataType);
end; end; 具体数据类型非常多,有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, ftTimeStamp, ftFMTBcd,这里只处理了用到的一部分。