| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 |
    想学好编程,外语很重要,最新的编程技术还是在国外  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 数据库 >> mysql >> mysql教程 >> 文章正文
MySQL中文参考手册---16 MySQL对ODBC的支持            【字体:
MySQL中文参考手册---16 MySQL对ODBC的支持
作者:不详    文章来源:网络    点击数:    更新时间:2007-1-21

MySql利用MyODBC程序为ODBC提供支持。

16.1MyODBC支持的操作系统

MyODBC是在Windows95和WindowsNT上的一个32位ODBC(2.50)level0驱动程序。我们希望谁能将它移植到Windows3.x。

16.2怎样报告MyODBC的问题

MyODBC已经用Acess、Admndemo.exe、C++Builder、CenturaTeamDeveloper(早先是GuptaSQL/Windows)、ColdFusion(在Solaris和用ServerPack5的NT上)、CrystalReports、DataJunction、Notes4.5/4.6、SBSS、PerlDBD-ODBC、Paradox、Powerbuilder、Powerdesigner32位、VC++和VisualBasic。

如果你听说有任何其他的应用程序用MyODBC一起工作,请把它寄到MySql.com">myodbc@lists.MySql.com!

16.3已知可用MyODBC工作的程序

大多数程序应该可用MyODBC工作,但对下面列出的每一个,我们自己测试了它或从它运行的一些用户得到了证实:

程序
说明
Access
为使Access工作:
  • 你应该在桌中有主键。
  • 你应该在所有你想要能被修改的表中有一个时间戳记。
  • 仅使用双精度浮点数的字段。当用单精度浮点数进行比较时,Access失败。
  • 当与MySql连接时,设置“Returnmatchingrows”(返回匹配的行)选项域。
  • 在NT上的Access将报告BLOB列为OLEOBJECTS。如果你想要有MEMO列,你应该用ALTERTABLE把列改成TEXT
  • Access不能总是正确地处理DATE列。如果你对此有一个问题,把列改为DATETIME
  • 在一些情况下,Access可以产生不合法的SQL查询,而MySql不能理解。你可以通过从Access菜单"Query|SQLSpecific|Pass-Through"来修正它。
DataJunction
你必须改变它来输出VARCHAR而非ENUM,因为它以能引起MySQL困惑的方式导出后者。
Execl
工作。一些建议:
  • 如果你对日期有问题,试着使用CONCAT()函数作为字符串选择他们。例如:
    selectCONCAT(rise_time),CONCAT(set_time)fromsunrise_sunset;

    这种方式作为字符串检索出的值应该被Excel97识别为时间值,例子中CONCAT()的目的是欺骗ODBC认为列是“字符串类型”。没有CONCAT(),ODBC知道列是时间类型,而Excel不理解它。注意这是Excel的一个错误,因为它自动将一个字符串转换为一个时间。如果数据源是一个文本文件,这问题将很大,但是当数据源是对每列报告准确类型的一个ODBC连接时,只是有点傻。

odbcadmin
为ODBC的测试程序。
Delphi
你必须使用DBE3.2或更新。当与MySQL连接时,设置“Dontoptimizecolumnwidth”(不优化列宽度)选项域。另外,有一些潜在有用的delphi代码安装一个ODBC入口和针对MyODBC的一个BDE的入口(BDE入口需要一个BDEAliasEditor,可以到DelphiSuperPage上免费拥有):(感谢BryanBruntonbryan@flesherfab.com)
fReg:=TRegistry.Create;fReg.OpenKey(\Software\ODBC\ODBC.INI\DocumentsFab,True);fReg.WriteString(Database,Documents);fReg.WriteString(Description,);fReg.WriteString(Driver,C:\WINNT\System32\myodbc.dll);fReg.WriteString(Flag,1);fReg.WriteString(Password,);fReg.WriteString(Port,);fReg.WriteString(Server,xmark);fReg.WriteString(User,winuser);fReg.OpenKey(\Software\ODBC\ODBC.INI\ODBCDataSources,True);fReg.WriteString(DocumentsFab,MySQL);fReg.CloseKey;fReg.Free;Memo1.Lines.Add(DATABASENAME=);Memo1.Lines.Add(USERNAME=);Memo1.Lines.Add(ODBCDSN=DocumentsFab);Memo1.Lines.Add(OPENMODE=READ/WRITE);Memo1.Lines.Add(BATCHCOUNT=200);Memo1.Lines.Add(LANGDRIVER=);Memo1.Lines.Add(MAXROWS=-1);Memo1.Lines.Add(SCHEMACACHEDIR=);Memo1.Lines.Add(SCHEMACACHESIZE=8);Memo1.Lines.Add(SCHEMACACHETIME=-1);Memo1.Lines.Add(SQLPASSTHRUMODE=SHAREDAUTOCOMMIT);Memo1.Lines.Add(SQLQRYMODE=);Memo1.Lines.Add(ENABLESCHEMACACHE=FALSE);Memo1.Lines.Add(ENABLEBCD=FALSE);Memo1.Lines.Add(ROWSETSIZE=20);Memo1.Lines.Add(BLOBSTOCACHE=64);Memo1.Lines.Add(BLOBSIZE=32);AliasEditor.Add(DocumentsFab,MySQL,Memo1.Lines);
C++Builder
用BDE3.0测试过。唯一知道的问题是,当表框架改变时,差询字段不被更新。然而BDE似乎认不出主键,只是索引PRIMARY,尽管这已经不是个问题。
VisualBasic
为了能更新一张表,你必须为表定义一个主键。

16.4怎样填写ODBC管理程序的各种域

在Windows95上,有3种可能性来指定服务器名:

  • 使用服务器的IP地址。
  • 增加一个文件“lmhosts”,具有下列信息:
    iphostname

    例如:

    194.216.84.21my
  • 设置PC以使用DNS。

怎么填写“ODBC设置”的例子:

WindowsDSNname:testDescription:ThisismytestdatabaseMySqlDatabase:testServer:194.216.84.21User:montyPassword:my_passwordPort:

WindowsDSNname域的值是在你的WindowsODBC设置中唯一的任何名字。

你不必为在ODBC设置屏的Server,User,PasswordPort域指定值。然而如果你这样做,当你试图做一个连接时,这些值将在以后作为缺省值使用,那时你有改变值的选择。

如果没给出端口号,使用缺省端口(3306)。

如果你指定选项ReadoptionsfromC:\my.cnf,组clientodbc将从“C:\my.cnf”文件中读出。你可以使用可用于sql/Index.html'>mysql_options()的所有选项。见20.4.37sql/Index.html'>mysql_options()

16.5怎样在ODBC中获得一个AUTO_INCREMENT列的值

一个常见的问题是怎样得到一个自动从一个INSERT产生的ID值,用ODBC,你可以这样做(假定auto是一个AUTO_INCREMENT字段):

INSERTINTOfoo(auto,text)VALUES(NULL,text);SELECTLAST_INSERT_ID();

或,如果你是只是想把ID插入到另外一个表中,你可以这样做:

[1] [2] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • MySQL数据的导出和导入工具:…

  • mysql授课大纲

  • mysql技巧总结

  • PPTP + MPPE + RADIUS + MyS…

  • 使用函数递归实现基于php和M…

  • 基于MySQL的高性能数据库应用…

  • Mysql日期和时间函数

  • 深圳讯天 mysql 服务器错误分…

  • 几分钟让你走进mysql的门

  • 针对 Apache 2.x 的 MySQL 用…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |