accesss数据库问题(100分)

  • 主题发起人 主题发起人 pengxiaolin
  • 开始时间 开始时间
P

pengxiaolin

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位高手:
我要在程序运行时ACCESS数据库中动态建立一表,方法如下:
with tbxmbyk do
begin
active:=false;
databasename:=tbxmdb.DatabaseName;
tabletype:=tbxmdb.TableType;
tablename:='xm'+inttostr(year)+inttostr(month);
if not tbxmbyk.exists then
begin
fielddefs.assign(tbxmdb.fielddefs);
createtable;
end;
end;
但发现如下问题:
在tbxmdb中,字段je为货币类型,但新建的表tbxmbyk中
字段je为短整型。

如改用以下方法:
if not tbxmbyk.exists then
with fielddefs do
begin
clear;
add('je',ftcurrency,0,false);
createtable;
end;
新建的表中字段je也是短整型。
我所需要的是字段je为access数据库中的贷币类型(或双精度
型两位小数)。
谁能帮我???
 
怎么没人回答啊?我可等得很急。
请各位大虾多多指点。
 
用一下代码代替add() 试一试;
with AddFieldDef do
begin
Name := 'je';
DataType := ftcurrency;
end;
 
应当是一回事,主要的原因是delphi中的数据类型currency对应access的数据类型
是‘数字’。不知是否有别的办法。
 
我用你的代码试过,没有问题,是货币型.
d5
BDE->access97
 
我用的是d4,odbc->access97,试过多次不行。
 
我用
d5
BDE+odbc+access97试,不行,是整型,不知为何.
 
不知谁可以提供别的替代方法?
 
是bde 的问题?
 
不是BDE的问题,应该是ODBC的问题,用ODBC连接时,ACCESS的数据表中CURRENCY类型自动转换为ftFloat类型.
可按我的办法,直接用BDE连接ACCESS.
 
我发觉一个问题,我的ACCESS数据库是在OFFICE2000中建的,d4的BDE与之连接时
提示无法识别数据库格式。看来要不只有用d5,要不在ACCESS97中重建数据库了。
谁还有比较好的办法??
 
D5的BDE也不一定支持access2000.
 
这个问题应该是ODBC的问题。事实上,走ODBC很多数据类型就有问题,
而BDE往往没有这方面的问题。比如我在使用SQLServer的时候,使用BDE
访问NChar, NVarchar等Unicode数据类型的时候就没有问题,而ODBC
反而不行。微软和Inprise的说法是ODBC不支持Unicode类型,建议升级
到ADO来解决。
 
to cAkk:
支持的.
 
多人接受答案了。
 
我使用的是Access 2000 , 如何使用BDE直接访问它呢?
除了这个方法外,还有什么方法可以解决这个数据类型转换问题?
谢谢
 
后退
顶部