CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

关于连接本地数据库非技术问题!

楼主wanggjvc(王光杰)2004-12-02 11:57:15 在 PowerBuilder / 基础类 提问

pb如何直接连接本身相对路径下的数据库,不需要配置odbc数据源的。    
  也就是说可以直接整个文件夹拷贝过去其他机器就可以使用的,用access或者sybase 问题点数:20、回复次数:11Top

1 楼lzp_lrp(lzp)回复于 2004-12-02 12:18:26 得分 2

呵呵,什么也不配置的话,可以也就只有用文本文件做数据库了  
   
  不过像access和sybase的连接,你可以在程序里自动配置Top

2 楼qimin168(难得糊涂)回复于 2004-12-02 12:18:29 得分 0

先添加注冊表信息,  
  用install   shield打包工具就可以自動添加注冊表,然后把odbc的動態連結庫文件拷過來就可以了Top

3 楼wanggjvc(王光杰)回复于 2004-12-02 12:31:49 得分 0

sybase需要什么文件?如何用pb编程启动它  
  access不需要动态连接库的吧。windows自己有。   是要每次程序启动时在注册表里注册路径和odbc配置信息吗?Top

4 楼wanggjvc(王光杰)回复于 2004-12-02 13:58:13 得分 0

有实例吗Top

5 楼wanggjvc(王光杰)回复于 2004-12-02 14:14:39 得分 0

我用别的软件,重装系统还是能连接到数据库。用的是sybase,我看吧一些sybase的可执行文件拷贝到软件根目录的。   如何做?Top

6 楼xirumin(吃好喝好)回复于 2004-12-02 15:47:56 得分 2

access可以用ole   db连接Top

7 楼airfont(草原劣马)回复于 2004-12-02 17:23:40 得分 4

用.ini文件进行配置很方便的,若要我这有现成的,可以给你!Top

8 楼wanggjvc(王光杰)回复于 2004-12-02 18:01:53 得分 0

/*------------------------------------------------------------*/  
  //   参数:    
  //  
  //           [value]   string   as_odbc_name  
  //                         <description>:数据源名称  
  //           [value]   string   as_odbc_type  
  //                         <description>:数据源类型[asa7,SQLANY,DBF,FOXPRO,access]  
  //           [value]   string   as_path  
  //                         <description>:数据库驱动与数据库文件放置的目录  
  //                                                       注意:两者放在同一目录下  
  //           [value]   string   as_dbname  
  //                         <description>:数据库名称,注意不要写后缀  
  /*------------------------------------------------------------*/  
  //   返回值:   (NONE)  
  /*------------------------------------------------------------*/  
  //   作者:   pcm                       日期:   2003-12-1  
  /*============================================================*/  
   
   
  string   ls_key,ls_key1,ls_keyaccess  
  ls_key     =   'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\'+as_odbc_name  
  ls_key1   =   'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC   Data   Sources'  
   
  if   as_odbc_type   =   'asa7'   then  
  Registryset(ls_key,'Driver',as_path+"dbodbc7.dll")  
  Registryset(ls_key,'Description',"自动生成ODBC'")  
  Registryset(ls_key,'UID',"DBA")  
  Registryset(ls_key,'PWD',"SQL")  
  Registryset(ls_key,'Start',as_path+'dbeng7.exe')  
  Registryset(ls_key,'DatabaseFile',as_path+as_dbname+'.DB')  
  Registryset(ls_key,'DatabaseName',as_odbc_name)  
  Registryset(ls_key,'AutoStop',"Yes")  
  Registryset(ls_key1,as_odbc_name,"Adaptive   Server   Anywhere   7.0")  
  end   if  
   
  if   as_odbc_type   =   'SQLANY'   then  
  Registryset(ls_key,'Driver',as_path+"WOD50T.DLL")  
  Registryset(ls_key,'Description',"自动生成ODBC'")  
  Registryset(ls_key,'UID',"DBA")  
  Registryset(ls_key,'PWD',"SQL")  
  Registryset(ls_key,'Start',as_path+'dbeng50')  
  Registryset(ls_key,'DatabaseFile',as_path+as_dbname+'.DB')  
  Registryset(ls_key,'DatabaseName',as_odbc_name)  
  Registryset(ls_key,'AutoStop',"Yes")  
  Registryset(ls_key1,as_odbc_name,"Sybase   SQL   Anywhere   5.0")  
  end   if  
   
  if   as_odbc_type   =   'DBF'   then  
  Registryset(ls_key,'Driver',"C:\WINDOWS\SYSTEM\PBDBF12.DLL")  
  Registryset(ls_key,'Description',"自动生成ODBC'")  
  Registryset(ls_key,'Database',as_path)  
  Registryset(ls_key,'CreateType',"FoxPro25")  
  Registryset(ls_key,'Locking',"RECORD")  
  Registryset(ls_key,'LockCompatibility',"Fox")  
  Registryset(ls_key,'FileOpenCache',"1")  
  Registryset(ls_key,'CacheSize',"4")  
  Registryset(ls_key,'DataFileExtension',"DBF")  
  Registryset(ls_key,'IntlSort',"C:0")  
  Registryset(ls_key,'UseLongNames',"1")  
  Registryset(ls_key,'UseLongQualifiers',"1")  
  Registryset(ls_key,'ApplicationUsingThreads',"1")  
  Registryset(ls_key1,as_odbc_name,"PB   INTERSOLV   OEM   3.01   32-BIT   dBASEFile   (*.dbf)")  
  end   if  
   
  if   as_odbc_type   =   'FOXPRO'   then  
  Registryset(ls_key,'DefaultDir',as_path)  
  Registryset(ls_key,'Description',as_odbc_name+"的自动ODBC'")  
  Registryset(ls_key,'Driver','C:\WINDOWS\SYSTEM\odbcjt32.dll')  
  Registryset(ls_key,'DriverId',ReguLong!,280)  
  Registryset(ls_key,'FIL',"FoxPro   2.0")  
  Registryset(ls_key,'SafeTransactions',ReguLong!,0)  
  Registryset(ls_key,'UID',"")  
  Registryset(ls_key+'\Engines\Xbase','CollatingSequence','ASCII')  
  Registryset(ls_key+'\Engines\Xbase','Deleted',Regulong!,1)  
  Registryset(ls_key+'\Engines\Xbase','ImplicitCommitSync','Yes')  
  Registryset(ls_key+'\Engines\Xbase','PageTimeout',ReguLong!,600)  
  Registryset(ls_key+'\Engines\Xbase','Statistics',Regulong!,0)  
  Registryset(ls_key+'\Engines\Xbase','Threads',Regulong!,3)  
  Registryset(ls_key+'\Engines\Xbase','UserCommitSync','Yes')  
  Registryset(ls_key1,as_dbname,"Microsoft   FoxPro   Driver   (*.dbf)")  
  end   if  
   
  ls_keyaccess   =   "HKEY_USERS\S-1-5-21-602162358-1708537768-839522115-500\Software\ODBC\ODBC.INI"+as_odbc_name  
   
  if   as_odbc_type   =   'access'   then  
  Registryset(ls_keyaccess,'DBQ',as_path+'\'+as_dbname+'.mdb')  
  Registryset(ls_keyaccess,'Description',as_odbc_name+"的自动ODBC'")  
  Registryset(ls_keyaccess,'Driver',"D:\\WINNT\\System32\\odbcjt32.dll")  
  Registryset(ls_keyaccess,'DriverId',ReguLong!,25)  
  Registryset(ls_keyaccess,'FIL',"MS   Access;")  
  Registryset(ls_keyaccess,'SafeTransactions',ReguLong!,0)  
  Registryset(ls_keyaccess,'UID',"")  
  Registryset(ls_keyaccess+'\Engines\Jet','MaxBufferSize',Regulong!,2048)  
  Registryset(ls_keyaccess+'\Engines\Jet','ImplicitCommitSync','')  
  Registryset(ls_keyaccess+'\Engines\Jet','PageTimeout',ReguLong!,5)  
  Registryset(ls_keyaccess+'\Engines\Jet','Statistics',Regulong!,0)  
  Registryset(ls_keyaccess+'\Engines\Jet','Threads',Regulong!,3)  
  end   if  
   
  这个行吗?  
  数据库驱动与数据库文件放置的目录   注意:两者放在同一目录下  
  这个我不懂。从那里找驱动。要把数据库文件放到winnt\system32目录下吗Top

9 楼wanggjvc(王光杰)回复于 2004-12-03 14:53:29 得分 0

ls_keyaccess   =   "HKEY_USERS\S-1-5-21-602162358-1708537768-839522115-500  
  可惜access这个数据库字段是随机生成的啊,我重新安装一个系统就变成S-1-5-21-880237283-2725007785-1028829812-500。不同系统也不一样吧Top

10 楼renwanly(★★★★)回复于 2004-12-03 16:23:46 得分 10

你可以考虑用ole方式连接数据库,  
  //下面是ASA的,记得发布时带着pbole90.dll  
  SQLCA.DBMS   =   "OLE   DB"  
  SQLCA.LogPass   =   <********>  
  SQLCA.LogId   =   "DBA"  
  SQLCA.AutoCommit   =   False  
  SQLCA.DBParm   =   "PROVIDER='ASAProv.80',PROVIDERSTRING='dbf=E:\soft\20038291455449608\Domestic\DOMESTIC.DB',DATASOURCE='(local)',CommitOnDisconnect='No'"  
  //下面是access的  
  //   Profile   localDb:admin@renwanly:oleDB_msdasql  
  SQLCA.DBMS   =   "OLE   DB"  
  SQLCA.AutoCommit   =   False  
  SQLCA.DBParm   =   "PROVIDER='MSDASQL',PROVIDERSTRING='dbq=LocalDB.db;Driver={Microsoft   Access   Driver   (*.mdb)};uid=admin;pwd=123456',CommitOnDisconnect='No',MODE='DB_MODE_READWRITE',DateFormat='yyyy年mm月dd日',DateTimeFormat='yyyy年mm月dd日',TimeFormat='hh:mm'"  
  这样就OK了Top

11 楼tw829(唐牛)回复于 2004-12-03 17:07:36 得分 2

上面,上面!  
  :)Top

相关问题

  • 如何连接本地数据库?
  • 连接本地数据库的问题
  • 本地连接Internet数据库问题!
  • 拨号远程访问数据库时,本地数据库和远程数据库不能同时连接?
  • 数据库连接
  • 连接数据库!!!
  • 连接数据库!!!
  • 数据库连接!
  • 数据库连接
  • 数据库连接

关键词

  • 数据库
  • sybase
  • 连接
  • 文件
  • 驱动
  • 数据
  • access
  • 系统
  • db
  • registryset

得分解答快速导航

  • 帖主:wanggjvc
  • lzp_lrp
  • xirumin
  • airfont
  • renwanly
  • tw829

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo