怎样检查某个odbc驱动是否安装

yktd26 2010-04-22 10:14:01
如题,有没有什么办法检查某个odbc驱动是否按转并得到相关的信息
比如说,是否安装了mysql odbc 5.0, 或者说得到已经安装了的odbc驱动列表并得到相关信息,比如说版本号

最好不要用数据库控件尝试连接失败得到结果
而是比如说在注册表里找到相关信息?
...全文
638 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
comet927cpu 2010-12-03
  • 打赏
  • 举报
回复
我也不知道 学习下
金卯刀 2010-04-23
  • 打赏
  • 举报
回复
keiy 的方法不错!
柯本 2010-04-23
  • 打赏
  • 举报
回复
简单的,可直接使用SQLGetPrivateProfileString
//------------------------

Function SQLGetPrivateProfileString (
lpszSection :pansichar;
lpszEntry:pansichar;
lpszDefault:pansichar;
RetBuffer:pansichar;
cbRetBuffer:integer;
lpszFilename:pansichar)
:integer;stdcall;external 'ODBCCP32.DLL';
rocedure TForm1.Button1Click(Sender: TObject);
var
sqBuffer:ansipchar;
len:integer;
begin
getmem(sqBuffer,1024);
len:=SQLGetPrivateProfileString ('MySQL ODBC 5.1 Driver',nil,'', sqBuffer,1024,'odbcinst.ini');
if len<>0 then
ShowMessage('MySQL ODBC 5.1 Driver 驱动已安装!')
else
ShowMessage('MySQL ODBC 5.1 Driver驱动未安装!');
freeMem(sqBuffer);
end;
金卯刀 2010-04-23
  • 打赏
  • 举报
回复

////////////////////////////////////////////////////////////////////////////////
// //
// CheckMyODBCDriver //
// ----------------- //
// //
// Checks installation of the MyODBC driver //
// //
// Input: //
// (none) //
// //
// Result [Byte]: //
// 0: MySQL driver installed //
// 1: missing registry values //
// 2: missing file myodbc.dll //
// //
////////////////////////////////////////////////////////////////////////////////
function CheckMyODBCDriver: Byte;
var fReg: tRegistry;
bDriversValue, bMySQLKey, bMySQLValues: Boolean;
sDriver, sSetup: String;
begin
// checking the registry
try
fReg := TRegistry.Create;
fReg.RootKey := HKEY_LOCAL_MACHINE;

// checking key entry \Software\ODBC\ODBCINST.INI\ODBC Drivers
fReg.OpenKey( '\Software\ODBC\ODBCINST.INI\ODBC Drivers', True );
bDriversValue := fReg.ValueExists( 'MySQL' ) and
( fReg.ReadString( 'MySQL' ) = 'Installed' );

// checking key entry \Software\ODBC\ODBCINST.INI\MySQL
bMySQLKey := fReg.KeyExists( '\Software\ODBC\ODBCINST.INI\MySQL' );

// if exists key entry \Software\ODBC\ODBCINST.INI\MySQL
// check also the values
if bMySQLKey then
begin
fReg.OpenKey( '\Software\ODBC\ODBCINST.INI\MySQL', True );
bMySQLValues := fReg.ValueExists( 'APILevel' ) and
fReg.ValueExists( 'ConnectFunctions' ) and
fReg.ValueExists( 'Driver' ) and
fReg.ValueExists( 'DriverODBCVer' ) and
fReg.ValueExists( 'FileExtns' ) and
fReg.ValueExists( 'FileUsage' ) and
fReg.ValueExists( 'Setup' ) and
fReg.ValueExists( 'SQLLevel' );

if bMySQLValues then
begin
sDriver := Trim( fReg.ReadString( 'Driver' ) );
sSetup := Trim( fReg.ReadString( 'Setup' ) );
end;
end
else
bMySQLValues := False;



if ( bDriversValue and bMySQLKey and bMySQLValues ) then Result := 0
else Result := 1;
fReg.CloseKey;
fReg.Free;
except
Result := 1;
fReg.Free;
Exit;
end;

// if registry entries OK => check driver files ...
if ( Result = 0 ) then
begin
if not ( FileExists( sDriver ) and FileExists( sSetup ) ) then Result := 2;

end;

end;
亮剑_ 2010-04-23
  • 打赏
  • 举报
回复
...
yktd26 2010-04-23
  • 打赏
  • 举报
回复
相当的好
  • 打赏
  • 举报
回复
学习,,,,,,,,
SQLDebug_Fan 2010-04-23
  • 打赏
  • 举报
回复
学习。
林石公 2010-04-22
  • 打赏
  • 举报
回复
这个可以查注册表,
1、JDBC(Java Database Connection):java连接数据库统一接口API,底层主要通过直接的JDBC驱动和 JDBC-ODBC驱动实现与数据库的连接。 1>.JDBC驱动程序类型: <1>.JDBC-ODBC桥加ODBC驱动程序:需要ODBC驱动,适合于企业网或三层结构应用程序 <2>.本地API:需要驱动程序的二进制代码支持 <3>.JDBC网络纯java驱动程序:将JDBC转换为与DBMS无关的网络协议,又被某服务器转换为一种DBMS 协议,以操作各种数据库 <4>.本地协议纯java驱动程序:将JDBC调用直接转换成JDBC所使用的网络协议 2、JDBC操作基本流程: 1>.导入驱动:实例化时自动向DriverManager注册(DriverManager.registerDriver()) <1>.Class.forName(driver) <2>.Class.forName(driver).newInstance() <3>.new driver() 2>.取得数据库连接(Connect to the DataBase) <1>.用DriverManager取数据库连接 Connection cn = DriverManager.getConnection(url,uid,pwd); <2>.用jndi(java的命名和目录服务)方式:多用于jsp Context ctx = (Context) new InitialContext().lookup("java:comp/env"); DataSource ds = (DataSource) ctx.lookup(jndi); Connection cn = ds.getConnection(); 3>.执行sql语句(Execute the SQL) <1>.用Statement来执行sql语句 Statement sm = cn.createStatement(); sm.executeQuery(sql); // 执行数据查询语句(select) sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等) <2>.用PreparedStatement来执行sql语句 String sql = "insert into user (id,name) values (?,?)"; PreparedStatement ps = cn.prepareStatement(sql); ps.setInt(1,xxx); ps.setString(2,xxx); ... ResultSet rs = ps.executeQuery(); // 查询 int c = ps.executeUpdate(); // 更新 4>.处理执行结果: <1>.查询语句,返回记录集ResultSet <2>.更新语句,返回数字,表示该更新影响的记录数 <3>.ResultSet的方法:while(re.next()) next(),将游标往后移动一行,如果成功返回true;否则返回false getInt("id")或getSting("name"),返回当前游标下某个字段的值 5>.释放数据库连接 rs.close(); ps.close(); /stat.close(); con.close(); 3、创建可滚动、更新的记录集 1>.创建Statement时指定参数:该Statement取得的ResultSet就是可滚动的 Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE, ResultSet.CONCUR_READ_ONLY); 2>.创建PreparedStatement时指定参数 PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs.absolute(9000);
Modified by JACK on the afternoon of December 26, 2020 Modified by JACK on the afternoon of December 26, 2020 自考数据库系统原理简答题总结 1.什么是ODBC数据源? DB驱动程序和DBS之间连接的命名。 2.什么是DB驱动程序(DBMS驱动程序) 处理ODBC函数,向数据源提交用户请求执行的SQL语句。 3.什么是驱动程序管理器? 为应用程序加载、调用和卸载DB驱动程序。 4.ODBC的体系结构有多少层? ODBC的体系结构:1)ODBC数据库应用程序;2)驱动管理器;3)DB驱动程序;4)ODBC数据源; 5.什么是SQL/CLI? 在SQL标准中,称为"调用层接口",SQL/CLI是ODBC技术的延续。 6.PB开发空间三个层次? 1)WorkSpace(工作空间);2)Target(目标);3)Library(库文件); 7.PB连接数据库三个步骤? 1)建立ODBC数据源;2)建立数据库描述文件;3)用Connect命令连接数据库; 8.PB中输出窗口功能? 输出窗口用于显示对开发人员做出的操作响应。 9.什么是T-SQL? 在SQL SERVER中,专门用来扩展弥补SQL标准的不足的语言。 10.T-SQL中GO、While、IF、Begin…End作用 GO可以使SQL语句的执行无条件地转移到指定的标签处。 While可以重复执行一个语句,直到条件为假为止。 IF根据表达式真假,选择执行某个语句或语句块。 Begin…End可以将多条SQL语句封装起来,形成一个语句块,使这些语句作为一个整体执行。 11.什么是角色? 具有相同权限的用户组织在一起称之为角色。 12.SQL SERVER 2000中,有哪两种身份验证模式? Windows身份验证模式与混合身份验证模式。 13.用户访问SQL SERVER 数据库中的数据,必须经过哪三个认证过程? 1)身份验证;2)当用户操作数据库的时候,认证该用户是否是合法用户;3)当用户操作数据库中的数据表的时候,认证该用户是否有操作权限; 14.什么是触发器? SQL SERVER提供给程序员和数据分析员来保证数据完整性的一种方法,是与表事件相关的特殊的存储过程。 15.数据导入和导出工作的功能是什么? 为了完成在多个数据库之间数据转换和转移。 16.DBS的效益? 1)灵活性;2)简易性;3)标准化;4)面向用户;5)有效数据控制;6)维护方便; 17.磁盘存储器中有哪五类主要的数据结构? 1)数据文件;2)数据字典;3)索引;4)统计数据;5)日志; 18.DBMS中查询处理器有几部分组成? 1)DDL解释器;2)DML编译器;3)嵌入式DML的预编译器;4)查询求值引擎; 19.DBMS中存储管理器有几部分组成? 1)权限和完整性管理器;2)事务管理器;3)文件管理器;4)缓冲区管理器; 20.使用DBS的用户有哪几类? 1)DBA;2)应用程序员;3)终端用户;4)专业用户; 21. 什么是DBA? DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担着创建、监控和维护数据库结构的责任。 22.DBA职责功能? 1)定义模式;2)定义内模式;3)定义安全性规则,对访问数据库用户授权;4)定义完整性规则,监督数据库的运行; 23.DBA要求素质? 1)熟悉企业全部数据的性质;2)对用户的需求有充分的了解;3)对系统的性能非常的熟悉; 24.DBS的由几部分组成? 1)数据库;2)软件;3)硬件;4)数据库管理员; 25.什么是DB、DD?DB是与一个企业组织各项应用有关的全部数据的集合; DD是数据库系统中存放三级结构定义的数据库; 26.DBMS的主要功能? 1)数据库的定义功能;2)数据库的操纵功能;3)数据库的保护功能;4)数据库的维护功能;5)数据字典; 27.数据库的保护从哪4个方面保护? 1)数据库的恢复;2)数据库的并发控制;3)数据库的完整性控制;4)数据库的安全性控制; 28.DBMS的工作模式? 1)接收应用程序的数据请求和处理数据请求; 2)将用户的数据请求转换成复杂的机器代码; 3)实现对数据库的操作; 4)从对数据库的操作中接受查询结果; 5)对查询结果进行处理; 6)将处理结果返回给用户; 29.人工数据管理阶段特点? 1)数据不保存在计算机内;2)没有专用的软件对数据进行管理;3)只有程序的概念;4)数据面向程序; 30.文件数据管理阶段缺陷? 1)数据冗余;2)数据不一致;3)数据联系弱; 31.高级数据库阶段两个内容? 1)面向对象的概念建模;2)开放数据库互连技术; 32.什么是概念模型、逻辑模型、外部模型、内部模

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧