在程序中怎样用TQuery组件断开它与一个Access的连接? (100分)

  • 主题发起人 chemstar
  • 开始时间
C

chemstar

Unregistered / Unconfirmed
GUEST, unregistred user!
几个关于数据库的问题:
1、我在程序中用了一个TQuery组件用来控制外部一个Access库,请问:
(1)怎样断开及改变它同数据库的连接?比如,原来我是用它控制aaa.mdb,现在想在程序中
  删掉aaa.mdb(直接删是不行的),怎样将其同aaa.mdb断开?也就是说关掉aaa.mdb?
  (2)怎样再建立它与另一个数据库bbb.mdb的连接?
2、Paradx库能在程序中凭空建一个吗?若能,怎么建?建一个表呢?
3、什么数据库(pd,mdb,dbf等)最快或最小?
 
1.需要BDE
2.理论上可以
3.应当是 select id,pid,name ....
 
刚才敲错了,我用了select id,pid,name ....也不行。这里面的“start with ”“connect by”
是oracle的sql保留字,使一条记录的pid列的值等于前一记录的id列的值,并以pid等于0的记录开始。

(是不是字段名要区分大小写?)
 
1不要什么额外的
2能,create
 
1:发布时直接打包上BDE就可以
2:创建库?是创建别名吗,(1)修改注册表。
(2)session.addalias
  创建表,用createtable就可以。
3:你说的模糊查询不会是like吧,呵呵。
 
WISE902可以解决发布 BDE和你的程序
 
1:大家都说了。
2:我的程序:bie:=Application.MessageBox('数据库不存在,是否创建?','DBE信息窗口',mb_okcancel);
if bie=idcancel then begin
str4.Free;
exit;
end;
session.AddStandardAlias('whkf','e:/data/data','paradox');
session.SaveConfigFile;//建库。
CREATE TABLE xxxxxx//建表。
3:我也正想知道。
 
3.select * from table1 where field1 like '%xxx%'
 
to naughtboy,
你的这一句:'%xxx%',在delphi内根本不认呀!!总是提示:
[Error] main.pas(1168): Illegal character in input file: '%' ($25)
这是怎么回事?
 
to 大家:
  比如说:要查出数据库里所有的name字段内含有字符‘aaa’的记录,应该怎么操作?
我用的是query,请最好给出完整的代码。
 
1、BDE, 你直接用ADODATASET/adotable/adoquery不更好?
这样可以不发布BDE,COPY EXE和MDB到任何一台98就能用
2、肯定能,如上面兄弟说的
3、用SQL语句:LIKE %FIND%
4、PARADOX最快,剩余两个也慢不了多少
5、ACCESS的OLE和备注、PARADOX的MEMO、OLE、BINARY、DBF的淘汰了吧
建议别用BDE,尽量用ADO,这两者在效率、速度上不相上下的
 
s:='aaa';
query1.close;
query1.sql.clear;
query1.sql.add('select * from tablename where name like '+''''+'%'+s+'%'+'''');
query1.open;
 
to beamgx:几个问题请教:
1、老兄,我用的是Adoquery来控制一个access的mdb文件。但是近来发现mdb文件本身的体积太大不说,
一个空的库就有近百K,而且膨胀的太快,又不释放剩余的空间。比如,加上1000条记录,再删掉它们,
体积就会剧增!
 2、我不想我的程序发布时再单独制作安装程序,所以请您给我推荐一个更好的存数据的方式。
 3、用ADO能控制PARADOX吗?若用BDE是不是需另发布引擎之类的东西?
 4、你说可以用ADODATASET/adotable/adoquery,我是直接用的adoquery,这两者有什么不同?
5、你的这句“ACCESS的OLE和备注、PARADOX的MEMO、OLE、BINARY、DBF的淘汰了吧”我不是太懂,
是什么意思?什么该淘汰?我要存大量的文本及图片的话(分别存,图片用流的方式),用什么字段?
 
1、ACCESS就这样,怎么在程序中解决,我也不懂,压缩修复它才释放空间
2、就用DELPHI+ADO+ACCESS,发布时只需要考EXE和MDB文件就能用,不用做安装包的
3、ADO好象不能控制PARADOX
4、差不多都一样的,如果你习惯用ADOQUERY,就用他就行
5、DBF表尽量不用,ACCESS的备注型可存大量文本,
ACCESS的OLE对象型可存各种流数据
PARADOX的OLE型应该与ACCESS的OLE型一样,
PARADOX的MEMO型与ACCESS的备注型一样,
PARADOX的BINARY型可存任何数据,
PARADOX的GRAPHIC型可存BMP数据
6、建议买本李维有关ADO、MTS的书,慢慢看
说的不对的地方,请指正
 
你加一个Tdatabase控件,然后用database控件的就可以实现与access数据库的断开与连接了
如:
database1.close;
连接采用:
database1.DatabaseName:='jgls';
database1.loginprompt:=false;
 
顶部