关于数据库的奇怪问题,200分送出!(200分)

  • 主题发起人 主题发起人 heartcool
  • 开始时间 开始时间
H

heartcool

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TQuery组件和TDataSource组件对Orcale数据库进行访问,奇怪的是同样的语句放在一个
新的工程里就可以正确运行,但是一旦存盘以后就不能正常工作。在运行时提示:“General
SQL error,ORA-01041:内部错误,hostdef扩展名不存在,alias ...”,而实际上用SQL
Explore 或者直接登陆到远端的数据库都能读取数据。我已经试过重装了,而且SQL语句肯定
是对的,希望各位高手不吝赐教,谢谢!我只剩200分了,全部送出,急!
 
我曾遇过类似问题。

因我公司服务器安装了 Proxy,我的机子也必须安装 Proxy 才
能访问某些网站。可是 SQL Server(不是 Orcale)和 Proxy 似
乎有冲突,会出现类似你所说的问题。

后来卸掉 Proxy 就 OK 了。

不知你那是否同样的原因引起的,希望有所帮助。
 
“奇怪的是同样的语句放在一个新的工程里就可以正确运行,但是一旦存盘以后就不能正常工作”
什么意思?
我估计还是你的程序中和Orcale的连接设置有问题。
 
“奇怪的是同样的语句放在一个新的工程里就可以正确运行,但是一旦存盘以后就不能正常工作”
就是如果你没有将当前的工程存盘就可以运行,一旦存盘以后旧不行了。因为能用sql explore
访问数据库,所以与数据库的连接应该没有问题。我试了zwhc提供的方法,发现现在在新的工程
里即使存盘也能正常运行了,但是在我以前的程序里还是不行,希望各位高手再替小弟想想办法!
先行谢了。

 
能把代码贴出来吗?不然怎么知道是那里有问题?
 
代码如下:
Procedure MainForm.Create(...);
begin
Query1.Clear;
Query1.SQL.Add('Select * from dbexample');
Query1.ExecSql;
Query1.Close;
end;
(仅在此处用了数据库)
 
不应该用Query1.ExecSql,而应该用Query1.Open.
 
booboo的意见对
 
用法标准一点:
Query1.close;
query1.sql.clear;
query1.sql.add('');
query1.open;
 
多人接受答案了。
 
后退
顶部