FireBird 和 DBExpress 八字不合? |
缺席
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
DBExpress很奇怪的是,SQLConnection1选择DriverName是InterBase, 能够连接到 FireBird, 然后在设计期的 SQLDataSet1 的CommandText点开,能看到里面的表,我做了一个表叫"Test"。在设计期选中那个表,CommandText就自动生成了 Select * from Test。到这里一切正常。 然后,把SQLDataSet1.Active:=True ,出错误提示:Table Unkonow Test 用 IBClientDataSet1 ,通过 IBDataBase 来连接,也出现同样的错误。 如果直接拿 InterBase 那套元件,IBDataBase IBTable,能够打开 FireBird 的数据库。
|
fadichen
初階會員 發表:29 回覆:68 積分:29 註冊:2003-09-11 發送簡訊給我 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
实验结果: 在 FireBird 里建立的 Table 的名字是 Test,在 DBExpress 的 SQLDataSet里写的SQL语句是 select * from Test,就会出现找不到这个Table的错误。写成 select * from TEST,也不行。 拿FireBird自己带的Demo Table来打开表,却又没问题。仔细观察,它的所有Table name全是一律大写。 于是建立一个表叫:TEST。然后在 DBExpress里写:select * from TEST,就能打开这个Table了。 所以,它的大小写规则真的是莫名其妙。 另外,它的 Dialect 的几个级别不知道是怎么回事。FireBird 1.5 支持到3,它的DEMO TABLE里有field type 是 Bit Int ,必须是 Dialect 3才能支持。D7的DBExpress打开这样的Table会错误。是不是D7的DBExpress只支持到1?
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
引言: 实验结果: 在 FireBird 里建立的 Table 的名字是 Test,在 DBExpress 的 SQLDataSet里写的SQL语句是 select * from Test,就会出现找不到这个Table的错误。写成 select * from TEST,也不行。 拿FireBird自己带的Demo Table来打开表,却又没问题。仔细观察,它的所有Table name全是一律大写。 于是建立一个表叫:TEST。然后在 DBExpress里写:select * from TEST,就能打开这个Table了。 所以,它的大小写规则真的是莫名其妙。 另外,它的 Dialect 的几个级别不知道是怎么回事。FireBird 1.5 支持到3,它的DEMO TABLE里有field type 是 Bit Int ,必须是 Dialect 3才能支持。D7的DBExpress打开这样的Table会错误。是不是D7的DBExpress只支持到1?关于上述问题,仔细查GOOGLE。大小写的问题,FB说最好是全部大写。如果大小写混合,就要加引号把名字括起来。 D7的DBEXPRESS是支持 Dialect 3的。在SQLConnection.Param的设置里有这么一项。默认是1,改成3就可以了。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |