你看看SQLCA的SQLCODE值是多少?
这个应该是连接正常,估计是你数据窗口取值写的不对。
你在OPEN()中粘贴profile,是哪个open()?
窗口的Open还是application的open()?
另外,无论在哪里都可以,你写connect using sqlca这句话了么?
如果写这句话看看sqlca.sqlcode的值是不是0,如果是,连接正常。
然后再看看你有没有写dw_1.settransobject(sqlca) dw_1.retrieve(),这两句话才是让数据窗口显示的语法。你肯定错在其中某一个了
在open()中,粘帖上profile,那么你粘贴之后,有没有在后边写CONNECT USING SQLCA这句话?如果没写,那么你写了配置也是白写,根本就没有连接。
看看有没有数据源密码!
还有我也遇到这个问题了 其实就是一个或多个空格的问题 譬如我的代码:// Profile hthzsb1.0
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=" +dsn_name + ";UID=dba;PWD=sql'"
在dsn= uid = pwd = 等号的后面都不能有空格
在数据窗口中的constructor事件中 编写如下代码 :settransobject(sqlca) 再试试 还有就是 在application的Open事件中看有没有 connect; 这句话 还有在application的open()事件中 写上 if sqlca.sqlcode <> 0 then messagebox("系统提示","数据库连接失败!失败原因:"+sqlca.sqlerrtext+"") halt ;
// Profile newhospital
SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.LogPass = <***>
SQLCA.ServerName = " "
SQLCA.LogId = " "
SQLCA.AutoCommit = False
SQLCA.DBParm = "PBCatalogOwner= "
connect;
IF SQLCODE<>0 THEN
MessageBox("数据库错误",SQLErrText, Exclamation!);
ELSE
MessageBox("数据库连接成功!");
END IF
看看connect之前的内容对不对,然后测试一下.
(没看到上面的。上面说的详细,就是这个意思)首先,你的profile代码后面有没有加上CONNECT USING SQLCA ;
然后,数据窗口所在的窗口的open事件中要加上dw_1.settransobject(sqlca)
dw_1.retrieve()
肯定可以显示数据的。
如果是下拉数据窗口没有数据的话,记得edit属性页里面的autoretrieve属性打勾
可能楼主是忘记在application的Open事件中少写了 connect;