问题又来了: CreateTable和Database Desktop ?(50分)

  • 主题发起人 主题发起人 bluebird
  • 开始时间 开始时间
B

bluebird

Unregistered / Unconfirmed
GUEST, unregistred user!
为了和别人的应用软件兼容(VB5做的),我必须用DBASE数据表,而且必须动态
生成。可是有问题的是,我用DATABSE DESKTOP 生成的表用VB5可以访问,而
用CRATETABLE生成的表 VB5却无法访问。说 format错!

1。我什么地方用的不对?请各位打下指教。
2。我用CREATETABLE生成的数据表和用DESKTOP生成的TABLE有什么不同呢?
3。有没有变通的方法?我只要生成规定字段的表就行了。从用DESKTOP生
成表COPY一份可以码?

//souce code:
//自己定义表名
CurrTable :='Ps'+Copy(FormatFloat('0000',Year),3,2)
+FormatFloat('00',Month)+FormatFloat('00',Day);
Table1.Active := False;
Table1.DatabaseName := 'KjScada';
Table1.TableType := ttDbase;
Table1.TableName := CurrTable ;
if not Table1.Exists then
begin
with Table1.FieldDefs do
begin
Clear;
Add('CENTERID',ftinteger,0,False);
Add('NO', ftInteger, 0, False);
Add('WD1', ftFloat, 0, False);
Add('WD2', ftFloat, 0, False);
Add('WD3', ftFloat, 0, False);
Add('WD4', ftFloat, 0, False);
Add('DZ' , ftBoolean,0, False);
Add('FSK' , ftBoolean,0, False);
Add('UNIT', ftString,10, False);
Add('TIME', ftString,8, False);
Add('DATE', ftDate, 0 , False);
end;
Table1.CreateTable;
Table1.Active := True;
end else

//我讨厌VB :(
 
用sql的create table可以
 
vb5用什么访问!odbc?
 
vb中不是ODBC,直接用DATA构件(那个程序是别人做的,没有办法改)。
 
D4中的新版BDE,如果将dBase Dirver的Level设置为7.
这时CreateTable会生成Visual dBase 7的 dbf格式,那是一个新的格式。
 
yysu,可是VB中能打开它码?
 
VB是不可能打开dbase 7 的dbf格式的。
您可以将 Level 设为 4(dBase IV), 5(dbase 5), 25(Fox Pro)试试看。
 
我觉得恰恰应该将level设定为3, 将格式设为标准的dbase 3的结构.
这样VB5如果再读不出来, M$就关门打样吧! :))
 
哈,读出来了!
谢谢yysun,小弟真是才学疏浅,望打下今后多指教
 
多人接受答案了。
 
后退
顶部