标题:有关PB数据库编程的三个问题
只看楼主
当蚂蚁爱上大象
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-8-13
 问题点数:0 回复次数:8 
有关PB数据库编程的三个问题
第一个问题:
PB对数据库的编程,可以在外部建立ODBC,这是不是意味着 : 用PB开发的程序在移植到其他微机上时,还需要先建立好ODBC?

第二个问题:
另外PB数据库的范例程序中,在APP的OPEN事件中都有如下语句:
SQLCA.DBRS="***"
SQLCA.................
SQLCA................

这几行代码是必须的吗?这还能叫做是快速开发吗?

第三个问题:
我安装了PB8 , 在开始菜单中出现了好多PB相关的快捷方式 , 但使用时不是出错就是无法建立数据库,想通过它们建立ANAWHERE数据库,我认为是不可能的.
我建立ANAWHERE 数据库时是在PB中建立的,我发现PB中还可以创建ORACLE\MS SQLSERVER 等,这是否表示:ANAWHERE数据库的建立只能在PB中?
搜索更多相关主题的帖子: 数据库 SQLCA ODBC ANAWHERE APP 
2006-09-20 21:10
︷順⑦?zì繎
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2006-3-28
得分:0 
第一:可以用代码进行配置ODBC
   http://www.bc-cn.net/blog/user7/31742/archives/2006/1567.shtml

第二:你要处理数据,肯定要与数据库进行关联

第三个偶不清楚。

2006-09-21 11:26
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 

第一个问题:
PB对数据库的编程,可以在外部建立ODBC,这是不是意味着 : 用PB开发的程序在移植到其他微机上时,还需要先建立好ODBC?
一般来说是这样的,也可以用代码建立.

关于动态注册ASA数据库ODBC数据源

//************************************************************//
// 函数名: //
// 功能: 主要是根据传入的库文件名,自动完成ODBC的配置 //
// 一文件名在ODBC中注册数据源 //
// 输入: //
// ls_filename 文件名称(主要是库文件) //
// ls_dir 文件所在的目录 //
// 返回值: //
// 1 表示自动配置成功 //
// 0 表示自动配置失败 //
// 设计者: Adamswater //
// 完成时间: 2003年10月 //
//************************************************************//
integer li_return //返回值
string ls_filename
integer li_rtn
string ls_root
string ls_root_table

ls_filename = as_filename + ".db"//获得数据库文件名字


ls_root = "HKEY_LOCAL_MACHINE\software\odbc\odbc.ini"
ls_root_table = ls_root + "\" + as_filename
li_return = 1
li_rtn = registryset(ls_root,as_filename,regstring!,"")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"AutoStop",regstring!,"Yes")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"Compress",regstring!,"NO")
if li_rtn= - 1 then
return 0
end if
li_rtn = registryset(ls_root_table,"DatabaseFile",regstring!,as_dir + "\"+ls_filename)
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"DatabaseName",regstring!,as_filename)
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"Debug",regstring!,"NO")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"DisableMultiRowFetch",regstring!,"NO")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"Driver",regstring!,as_dir + "\"+"dbodbc8.dll")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"Start",regstring!,as_dir + "\"+"dbeng8.exe -d -c8m")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"EngineName",regstring!,"ndjwglxt")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"Integrated",regstring!,"No")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"PWD",regstring!,"jwglxt")
if li_rtn= - 1 then
li_return = 0
end if
li_rtn = registryset(ls_root_table,"UID",regstring!,"jwglxt")
if li_rtn= - 1 then
li_return = 0
end if
return li_return


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-22 10:17
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 
第二个问题:
另外PB数据库的范例程序中,在APP的OPEN事件中都有如下语句:
SQLCA.DBRS="***"
SQLCA.................
SQLCA................

这几行代码是必须的吗?这还能叫做是快速开发吗?

这个是必须,快速不快速因人而异

乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-22 10:18
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 
第三个问题:
我安装了PB8 , 在开始菜单中出现了好多PB相关的快捷方式 , 但使用时不是出错就是无法建立数据库,想通过它们建立ANAWHERE数据库,我认为是不可能的.
我建立ANAWHERE 数据库时是在PB中建立的,我发现PB中还可以创建ORACLE\MS SQLSERVER 等,这是否表示:ANAWHERE数据库的建立只能在PB中?

ANAWHERE数据库的建立只能在PB中.
具体建立方法:
dbprofiles/odbc/utilities/create asa databases

乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-22 10:19
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 
另忠告,PB不是万能的,也不是最好的开发工具,更不是一个程序员必须学习的.你可以使用也可以不使用.

乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-22 10:20
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 
我建立ANAWHERE 数据库时是在PB中建立的,我发现PB中还可以创建ORACLE\MS SQLSERVER 等,这是否表示:ANAWHERE数据库的建立只能在PB中?

不是创建ORACLE\MS SQLSERVER ,是建立同ORACLE\MS SQLSERVER的连接.
如果PB有这个功能,那甲骨文和微软就被sybase收购了.估计短期内,Sybase没这个能力.

乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-22 10:22
当蚂蚁爱上大象
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-8-13
得分:0 
谢谢<<潇洒老乌龟>>详精的回答,真是听君一席话,胜读十年书啊!!!!!
基于以下原因,我想使用PB开发C/S结构的程序:

PB在本机上开发的程序,在移植到网络时,只需要打开INI文件,
更改IP地址从127.0.0.1到实际的IP地址,移植非常容易.

我使用DELPHI开发C/S程序时,使用三层结构,采用的是MIDAS方法.
但是我做的程序在单机上运行良好,而分发后,有的微机上可以运行,
有的就失败了,比如,A机和B机,一个作为服务器,另一个作为客户端,调试良好,对调后却出错了.
虽然我很喜欢DELPHI,但DELPHI的这一点让我很头疼.我看到PB的C/S开发比较容易,
所以计划单独用PB做C/S开发,其他的则采用DELPHI.
(教材上说移植时需要"DBCLIENT.DLL"文件,
我在全硬盘也没找到,经过多次尝试竟然发现需要的是"MIDAS.DLL"文件,
但是在网络中有时就提示:"装载MIDAS.DLL文件出错.我都快晕死过去了,
好在这只是练手,高手请指点秘津啊)

我的想法有无不妥之处,请指出.THANKS!

[此贴子已经被作者于2006-9-26 20:35:58编辑过]

2006-09-26 20:34
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 
不好意思,DELPHI我不会.你问问其他兄弟.

乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-28 22:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-91617-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.112821 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved