急! OdbcExpress 5.02的使用问题(100分)

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

LittleSong

Unregistered / Unconfirmed
GUEST, unregistred user!
odbcexpress中如何动态创建数据库.如何判断一个表是否存在
如同ttable中的 exist
 
try
table1.open
except
//do what u like if table not exist
end;
 
谢谢;
但 dataset.create(tcomponent);tcomponent该是什么?
 
是 owner(中文译太不来)
可以是 APPLICATION,FORM。NIL,好象都不出错,呵呵,用发不同
 
谢谢.
不好意思,有一个问题.
我用append 为什么出错?
提示是: 不能确认dataset 是 close 状态. 但我已经执行过 dataset.close;
 
我还是创建不了数据库,这是源码帮帮忙给看一下
Try
TableJBTable.active:=true;
Except
With TableJBTable Do
begin
with FieldDefs do
begin
Clear;
BeginUpdate;
Add('WorkNo', ftString, 8, True);
For I:=1 To 31 Do
begin
Add(Day, ftString, 20, False);
end;
Add('ZLTQ',ftfloat,0,False);
Add('ZRTQ',ftfloat,0,False);
Add('PCJB',ftfloat,0,False);
Add('YCJB',ftfloat,0,False);
Add('JRJB',ftfloat,0,False);
EndUpdate;
end;

create(Nil);

再问一下如何创建索引呢?
 
哎, CJ , 人家单问你的问题要回答呀。不过你的
try
....
except
....
end; 也太简单了, 至少要用On E:Exception do 判断一下错误返回类型吧, 例如:如果表存在, 但是没有权限怎么办。 快些订正过。 给你加分, 不过在这之前
有人给了更好的答案, hehe.. :))

对于表的创建用CreateTable过程。

With TableJBTable Do
begin
with FieldDefs do
begin
Clear;
BeginUpdate;
Add('WorkNo', ftString, 8, True);
For I:=1 To 31 Do
begin
Add(Day, ftString, 20, False);
end;
Add('ZLTQ',ftfloat,0,False);
Add('ZRTQ',ftfloat,0,False);
Add('PCJB',ftfloat,0,False);
Add('YCJB',ftfloat,0,False);
Add('JRJB',ftfloat,0,False);
EndUpdate;
end;
// create(Nil); 删除
createtable; // 建立表的命令。
end;

谁来写CreateIndex的方法? 悬赏30分。(21日之前)
 
Sorry,我没有记得这个问题了,实在抱歉。
我正在离线看E-Mail,问题也记不清楚了。实际上,我对ODBC Express很有好感,
不过大项目也没做过。
1、如果需要管理ODBC的DSN,可以用TOEAdministrator,见 DEMO ODBC Explorer;
2、好象是建立表和索引的问题?我试用 SQL 语句在我的 ACCESS 数据库里建立了
一个表和一个索引,好象没问题:
CREATE TABLE AAA(ABC VARCHAR(20) )
CREATE INDEX IDX ON AAA(ABC)
用THstmt在ODBCExpress中实现SQL语句,详细请见OEISQL实例


表是否存在的问题,我在基本应该是如此完成的//在整理C/S部分搞的
try
Table1.Open;
except
On E1: EDataBaseError do
begin
if pos('Table does not exist',E1.Message) <> 0 then //因为错误信息后还有数据库名和表名等信息,所以使用POS。
showmessage('表不存在') //表不存在,可以建立之
else
Showmessage('其它数据库错误');//你当然可以继续判断是什么错误,并处理之
end;
on E2: EDBEngineError do
Showmessage('数据库引擎出错') //BDE 错误
else
showmessage('其他错误');
end;

不过事情真的没有那么复杂,实际上,TTable有个Exists属性,很好用,例子如下:
if Table1.Exists then
showmessage('Table exists')
else
showmessage('not exists');
值得注意的是,如果表损坏,Table.Exist 属性也会返回 False。

 
态度挺认真的。 :)) 100!!!
 
后退
顶部