CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

SQLConfigDataSource函数用法。

楼主washy(林)2002-04-09 21:09:44 在 VC/MFC / 基础类 提问

请问各位高手SQLConfigDataSource函数的第四个参数该都有些什么关键字?具体作用?用法?为什么我老是用不对啊。多谢! 问题点数:40、回复次数:5Top

1 楼louifox(兰陵笑笑生)回复于 2002-04-09 22:57:13 得分 20

char*   szDesc;  
  int   mlen;  
  szDesc=new   char[256];  
  TCHAR   szPath[MAX_PATH];  
  ::GetModuleFileName(  
      NULL,         //   handle   to   module  
      szPath,     //   file   name   of   module  
      MAX_PATH-1                   //   size   of   buffer  
  );  
   
  CString   strPathFile=szPath;  
  CFile   tempfile;  
  tempfile.Open(szPath,CFile::modeRead);  
  strPathFile.TrimRight(tempfile.GetFileName());  
  CString   strFullPath;  
  strFullPath=strPathFile+"bookinfo.mdb";  
   
  sprintf(szDesc,"DSN=%s*   DESCRIPTION=图书信息数据库*   DBQ=%s*   FIL=MicrosoftAccess*   DEFAULTDIR=%s**","图书信息数据库",(const   char*)strFullPath,(const   char*)strPathFile);  
  mlen   =   strlen(szDesc);  
  for   (int   i=0;   i<mlen;   i++)  
      {  
      if   (szDesc[i]   ==   '*')  
      szDesc[i]   =   '\0';  
      }  
   
  if   (FALSE   ==   SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft   Access   Driver   (*.mdb)\0",(LPCSTR)szDesc))  
    AfxMessageBox("Failed");  
  db.OpenEx(   _T("DSN=图书信息数据库"),   CDatabase::noOdbcDialog   );  
   
   
  我在我的程序里是这么写的,没问题,看看吧。Top

2 楼prog_st(st)回复于 2002-04-10 08:58:32 得分 20

//创建方法4完整版  
  if(SQLConfigDataSource(m_pMainWnd->m_hWnd,ODBC_ADD_DSN,"Microsoft   Access   Driver   (*.mdb)",  
  "DSN=Personnel\0"  
  "DBQ=C:\\My   Documents\\dq.mdb\0"  
  "DefaultDir=C:\\My   Documents\0"  
  "Driver={Microsoft   Access   Driver   (*.mdb)}\0"  
  "DriverId=790\0"  
  "Deleted=1\0"  
  "Description=ODBC数据源\0"  
  "FileType=Access\0"  
  "JetIniPath=odbcddp.ini\0"  
  "MaxScanRows=20\0"  
  "MaxBufferSize=512"  
  "ImplicitCommitSync=No\0"  
  "UserCommitSync=No\0"  
  "Exclusive=1\0"//独占  
  "ReadOnly=1\0"//只读  
  "UID=Smith\0"  
  "SafeTransactions=0\0"  
  "PWD=Sesame\0"  
  "DATABASE=dq\0"  
  "ExtendedAnsiSQL=1\0"  
  "Statistics=0\0"  
  "\0"))  
  AfxMessageBox("创建成功!");  
  else  
  AfxMessageBox("取消创建或创建失败!");  
   
   
  SQLConfigDataSource   函数被用于动态地添加、修改或删除数据源,该函数使用下列关键字。  
   
  关键字 描述  
  CHARACTERSET:  
              对于   Text   驱动程序,OEM   或   ANSI。  
  COLLATINGSEQUENCE:  
              字段排序的顺序。当使用   dBASE   驱动程序时,这个序列可以是:   ASCII   (缺省)   或   International.当使用   Paradox   驱动程序时,这个序列可以是:   ASCII   (缺省),International,Swedish-Finnish,或Norwegian-Dan   ish.这将设置与“设置”对话框的“排序顺序”控件相同的选项。  
  COLNAMEHEADER:  
              对于   Text   驱动程序,指出数据的第一个记录是否将指定列名。其值为   TRUE   或   FALSE。  
  COMPACT_DB:  
  对于   Microsoft   Access   data   compaction驱动程序,在数据库文件上执行数据库压缩。有如下的格式:COMPACT_DB=<路径名><可选排序顺序><可选   ENCRYPT   关键字>.  
  CREATE_DB:  
  对于   Microsoft   Access   驱动程序,创建数据库文件。有如下的格式:CREATE_DB=<路径名>><可选排序顺序><可选   ENCRYPT   关键字,在这里路径名是一个   Microsoft   Access   数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft   Access   安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用   General。当使用   CREATE_DB   关键字时,如果要创建的   Microsoft   Access   数据库的路径名称包含一个或一个以上的空格,则必须将整个路径名称用双引号括起来,如下列示例显示:"C:\PROGRAM   FILES\COMMON   FILES\  
  MyAccess.mdb""C:\PROGRAM   FILES\Access2.mdb"CREATE_DB=C:\TEMP\test.mdb(不需要双引号)  
  CREATE_SYSDB:  
  对于   Microsoft   Access   驱动程序,创建系统数据库文件。有如下的格式:CREATE_SYSDB=<路径名>><可选排序顺序>,在这里路径名是一个   Microsoft   Access   数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft   Access   安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用   General。  
  CREATE_V2DB:  
  对于   Microsoft   Access   驱动程序,创建与   Microsoft   Access   2.0   兼容的数据库文件。有如下的格式:CREATE_V2DB=<路径名>><可选排序顺序>,在这里路径名是一个   Microsoft   Access   数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft   Access   安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用   General。当使用   CREATE_V2DB   关键字时,如果要创建的   Microsoft   Access   数据库的路径名称包含一个或一个以上的空格,则必须用双引号将整个路径名称括起来,如下列示例显示:"C:\PROGRAM   FILES\COMMON   FILES\  
  MyAccess.mdb""C:\PROGRAM   FILES\Access2.mdb"CREATE_V2DB=C:\TEMP\test.mdb(不需要双引号)  
  DBQ 对于   Microsoft   Access   或   Paradox   驱动程序,数据库文件的名称。对于   Microsoft   Excel   驱动程序,当访问       Microsoft   Excel   5.0、7.0   或   97   的文件时,工作簿文件的名称。这就设置了与“设置”对话框的“数据库”控件相同的选项。  
  DEFAULTDIR:  
  对于数据库文件(   Microsoft   Access   驱动程序)   或   目录   (dBASE,Microsoft   Excel,Paradox,或   Text   驱动程序)的路径指定。这就设置了与“设置”对话框的“选择目录”控件,或对于   Microsoft   Excel,“设置”对话框的“选择工作簿”控件相同的选项。  
  DELETED:  
  对于   dBASE   驱动程序,指定被标记为已删除的行是否可以被检索到或被放置。如果设置成   1,则不显示被删除的行;如果设置成   0,则把已删除的行当作未删除的行。默认值是   不选定。这就设置了与“设置”对话框的“显示删除列”控件相同的选项。  
  DESCRIPTION:  
  数据源中数据的描述。这就设置了与“设置”对话框的“描述”控件相同的选项。  
  DRIVER:  
  指向驱动程序   DLL   的路径说明。  
  DRIVERID:  
  对于驱动程序的整型标识符。  
      25   (Microsoft   Access)  
      21   (dBASE   III)  
      277   (dBASE   IV)  
      533   (dBASE   5.0)  
      534   (Microsoft   Excel   3.0)  
      278   (Microsoft   Excel   4.0)  
      22   (Microsoft   Excel   5.0/7.0)  
      790   (Microsoft   Excel   97)  
      26   (Paradox   3.x)  
      282   (Paradox   4.x)  
      538   (Paradox   5.x)  
      27   (Text)  
  EXCLUSIVE:  
  决定数据库将以独占方式(一次只有一个用户访问)或分享方式(一次有多个用户访问)打开。可以是   TRUE(独占方式)或   FALSE(分享方式)。(这不会应用到   Microsoft   Excel   或   Text   驱动程序)。这就设置了与“设置”对话框的“独占方式”控件相同的选项。  
  EXTENSIONS:  
  列出在数据源上“文本文件”的文件名的文件扩展名。这就设置了与“设置”对话框的“文件类型”控件相同的选项。  
  FIL:  
  文件类型    
        MS   Access   for   Microsoft   Access  
        dBase   III,dBase   IV,or   dBase   5  
        Excel   3.0,4.0,5.0,7.0,or   97   for   Microsoft   Excel  
        Paradox   3.x,4.x,or   5.x)  
        Text.  
  FILETYPE:  
  对于   Text   驱动程序(文本)的文件类型。  
  FIRSTROWHASNAMES:  
  对于   Microsoft   Excel   驱动程序,指出范围中第一行的单元格包含了表的列名   (1)   还是没有包含   (0)。  
  FORMAT:  
  对于   Text   驱动程序,可以是   FIXEDLENGTH、TABDELIMITED、CSVDELIMITED(用逗点分隔)或DELIMITED   (   )(用括号中指定的特殊字符分隔)。特殊字符是长度为   1   的字符,并且可以是字符、十进制或十六进制格式。  
  IMPLICITCOMMITSYNC 决定   Microsoft   Access   驱动程序是否将异步执行内部或隐含提交。最初将此值设置成“是”   Microsoft   Access   驱动程序将等待提交要完成的内部/隐含事务。不应轻率更改此选项的值。有关此选项的更多信息,参见   Microsoft   Jet   数据库引擎程序员指南。这就设置了与“设置”对话框的   ImplicitCommitSync   控件相同的选项。  
  MAXBUFFERSIZE:  
  Microsoft   Access   用来与磁盘传送数据的内部缓冲区大小,以   KB   为单位。缺省缓冲区大小是   512   K(显示为   512)。可用任何被   256   整除的整型值。这就设置了与“设置”对话框的“缓冲区大小”控件相同的选项。  
  MAXSCANROWS 对于   Microsoft   Access、Microsoft   Excel   或   Text   驱动程序,在根据现有数据来设置列的数据类型时,所扫描的行数。可以输入由   1   到   16   的数字作为扫描的行数。默认值为   8;如果将它设置成   0,则扫描全部行。(越界的数字将返回错误)。对于   Text   驱动程序,可输入由   1   到   32767   的数字为扫描的行数;不过,默认值总是   25。(越界的数字将返回错误)。这就设置了与“设置”对话框的“扫描”控件相同的选项。  
  PAGETIMEOUT 指定一页(如果不使用)在删除之前保持在缓冲区中的时间的长短,以十分之一秒为单位。对于   Microsoft   Access   驱动程序,默认值是   5   个十分之一秒(0.5   秒)。对于dBASE   和   Paradox   驱动程序,缺省值是1秒的600/10   (60秒).注意,此选项应用于所有使用   ODBC   驱动程序的数据源。这就设置了与“设置”对话框的“页超时”控件相同的选项。  
  PARADOXNETPATH:  
  对于   Paradox   驱动程序,包含   Paradox   锁定数据库的目录的完整路径,因为它包含   PDOXUSRS.net   文件   (Paradox   4.x)   或   PARADOX.net   文件   (Paradox   5.x)。如果其中一个文件未包含在目录中,Paradox   驱动程序将创建一个。关于这些文件的详细信息,请参阅   Paradox   文档。在可以选定网络目录之前,必须输入   Paradox   用户名称。这就设置了与   Paradox“设置”对话框的“选定网络目录”控件相同的选项。  
  PARADOXNETSTYLE 对于   Paradox   驱动程序,当存取   Paradox   数据时使用的网络存取方式是:对于   Paradox   3.x   用“3.x”或   对于   Paradox   4.x   或   5.x   用“4.x”。如果版本是   Paradox   4.x   或   5.x,可以设置成“3.x”或“4.x”;如果版本是   Paradox   3.x,样式必须是“3.x”。这就设置了与   Paradox“设置”对话框的“网络样式”控件相同的选项。  
  PARADOXUSERNAME:  
  对于   Paradox   驱动程序,Paradox   用户名称。这就设置了与   Paradox“设置”对话框的“用户名称”控件相同的选项。  
  PWD:  
  对于   Microsoft   Access   或   Paradox   驱动程序,密码。对于   Paradox   驱动程序,这是可选的关键字,而且驱动程序不会将它写到文件中。用它调用   SQLDriverConnect,与有密码安全的   Paradox   文件相对。  
  READONLY:  
  TRUE   使文件为只读;FALSE   使文件不是只读。这就设置了与“设置”对话框的“只读”控件相同的选项。  
  REPAIR_DB:  
  对于   Microsoft   Access   repairs   a   database驱动程序,在提交进程期间失败而损害的数据库修复。  
  STATISTICS:  
  对于   dBASE   驱动程序,确定表大小统计是否是近似的。注意,此选项应用于所有使用   ODBC   驱动程序的数据源。这就设置了与“设置”对话框的“近似(行)计数”控件相同的选项。  
  SYSTEMDB:  
  对于   Microsoft   Access   驱动程序,指向系统数据库文件的路径规范。这就设置了与“设置”对话框的“系统信息库”控件相同的选项。  
  THREADS:  
  使用引擎的背景Top

3 楼washy(林)回复于 2002-04-10 10:00:06 得分 0

多谢!!!!!!!!Top

4 楼washy(林)回复于 2002-04-10 10:01:21 得分 0

多谢!!!!!!!!Top

5 楼washy(林)回复于 2002-04-10 10:04:37 得分 0

多谢!!!!!!!!有一个小小的问题:怎么给两位大侠加分啊?我是新手,不知道怎么加分。别见笑啊。呵呵。Top

相关问题

  • 函数用法?
  • AnimateWindow函数用法
  • +=======TransparentBlt函数的用法??========
  • 替换函数的用法?
  • split函数用法请教
  • API函数GetProfileString的用法
  • SetJob函数的用法
  • Oracle to_date()函数的用法?
  • 关于ord函数用法
  • CreateProcess函数的用法

关键词

  • .net
  • 驱动
  • 选项
  • 控件
  • 数据库
  • 文件
  • 数据
  • access
  • excel
  • 字符

得分解答快速导航

  • 帖主:washy
  • louifox
  • prog_st

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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