用TQuery生成dbf文件时,出现很多问题(100分)

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

LeoWang

Unregistered / Unconfirmed
GUEST, unregistred user!
使用tquery生成dBase类型的数据库文件时,我的sql语句是
create table "temp.dbf"
(a char(10),
b float(20,0),
primary key index(a))
但发现执行的时候总是出错
1、dbf文件中数字型字段如何定义float、double、umber之类的
2、索引如何创建
 
create table "temp.dbf"
(a char(10),
b float(7,2),
primary key (a))

——参考你的C:/Program Files/Common Files/Borland Shared/BDE/localsql.hlp
帮助文件里的CREATE TABLE statement、defining column types、Native table column types等主题。
 
1、可以使用number(10,2)来完成
2、DELPHI建立的索引与DBSAE所建立的索引是有差距的。两者并不能等同。
你完全可以使用TTABLE.CREATETABLE来建立DBF
例子:
if not Table1.Exists then begin
with Table1 do begin
{ The Table component must not be active }
Active := False;
{ First, describe the type of table and give }
{ it a name }
DatabaseName := 'dbase';
TableType := ttFoxpro;
TableName := 'CustInfo';
{ Next, describe the fields in the table }
with FieldDefs do begin
Clear;
with AddFieldDef do begin
Name := 'Field1';
DataType := ftInteger;
Required := True;
end;
with AddFieldDef do begin
Name := 'total';
DataType := ftfloat;
Required := True;
end;
with AddFieldDef do begin
Name := 'Field2';
DataType := ftString;
Size := 30;
end;
end;
{ Next, describe any indexes }
with IndexDefs do begin
Clear;
{ The 1st index has no name because it is
{ a Paradox primary key }
with AddIndexDef do begin
Name := 'Fldidx1';
Fields := 'Field1';
Options := [ixPrimary];
end;
with AddIndexDef do begin
Name := 'Fld2Indx';
Fields := 'Field2';
Options := [ixCaseInsensitive];
end;
end;
{ Call the CreateTable method to create the table }
CreateTable;
end;
end;
建议,使用ODBC来建立数据连接,再通过它来创建、访问DBASE。
 
zenger,谢谢你的帮助,但是我照你的方法,执行createtable的时候,他提示结构不对,
还有说没有这个表啊!
 
接受答案了.
 
后退
顶部