1.odbc Դ?源码?
2.LINUX安装ODBC驱动
3.mysql-odbc编译
4.Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
odbc Դ??
应用场景
硬件/整机信息:AMD平台
OS版本信息:服务器e版
软件信息:psqlodbc .版本
功能介绍
部分用户在使用etl工具连接数据库时,需要使用到odbc驱动,源码下面介绍下服务器e版系统中编译安装此工具的源码相关过程。
ETL:是源码英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、源码转换(transform)、源码开元音讯源码加载(load)至目的源码端的过程。
ODBC:是源码英文Open Database Connectivity的缩写,中文含义表示为开放数据库互连,源码是源码微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的源码一个组成部分,它建立了一组规范,源码linux 源码移植到win并提供了一组对数据库访问的源码标准API(应用程序编程接口)。
psqlodbc:即表示ODBC driver for PostgreSQL,源码是源码一种支持访问开放式互联数据库且支持PostgreSQL数据库的访问脚本。
安装使用
步骤一:安装相关依赖
root@uos-PC:~# yum install unixODBC-devel
root@uos-PC:~# yum install libpq-devel
步骤二:编译安装
psqlodbc项目各版本源码下载地址:https://www.postgresql.org/ftp/odbc/versions/src/
本文中以.版本作为示例,此版本源码包如下:
psqlodbc-...tar.gz
.9 KB
下载相关源码包拷贝至服务器系统中,解压安装包并进入对应目录执行:
root@uos-PC:~# ./configure --with-odbcinst=/usr/local/etc --enable-pgsql
root@uos-PC:~# make
root@uos-PC:~# make install
步骤三:配置环境变量
在需要运行ODBC的用户下执行以下命令配置环境变量:
(注意:此处是追加新增ODBC相关信息至环境变量参数项,而不是覆盖写入,执行指令时请勿遗漏相关的符号。)
使环境变量生效:
root@uos-PC:~# source ~/.bash_profile
步骤四:验证配置
执行以下命令查看 ODBC 的配置:
root@uos-PC:~# odbcinst -j
LINUX安装ODBC驱动
为了在Linux系统上安装ODBC驱动,首先需要从unixODBC.org/unixODBC-2... 下载源码包并解压至 /usr/local/。之后,linux进程查看程序源码进入解压后的目录执行构建与安装命令。
使用如下命令进行配置、构建与安装:
#cd /usr/local/unixODBC-2.3.1/
#./configure --prefix=/usr/local/unixODBC-2.3.1 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
#make
#make install
安装完成后,通过运行odbcinst -j来测试查看unixODBC的安装情况,结果应包含驱动、系统数据源、文件数据源、用户数据源、SQL数据类型大小等信息。如果出现错误,如“libodbcinst.so.2: cannot open shared object file: No such file or directory”,lzma2 算法源码可能是因为共享库路径设置问题。
解决此错误,可以执行以下步骤:
1. 如果共享库文件位于 /lib 或 /usr/lib 目录下,执行 ldconfig 命令以更新共享库缓存。
2. 如果共享库位于 /usr/local/lib 或其他非默认目录,先将此目录添加到 /etc/ld.so.conf 文件中,然后运行 ldconfig。
3. 可以通过设置全局变量 LD_LIBRARY_PATH 来临时指定共享库路径,方法是在用户配置文件或shell中添加命令行,如:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
请注意,此方法通常为临时解决方案,商城团购系统源码适用于无权限或暂时需要的情况。
mysql-odbc编译
近期工作中需要编译mysql-odbc的驱动库,以下为遇到的问题及解决方法。
首先,参照官网指南进行操作:MySQL :: MySQL Connector/ODBC Developer Guide :: 4.5 Building Connector/ODBC from a Source Distribution on Unix。
由于之前未接触过,对基本概念不甚了解。
首先,需要配置好依赖项目,如libmysqlclient.a。系统配置中需包含iodb或unixODBC。指南中已明确说明。
为使用静态库,我下载了mysql-8.0.编译的libmysqlclient库。
解压.src.rpm文件:命令 rpm2cpio ***.src.rpm | cpio -idv。
解压后,会有对应版本的mysql-8.0..tar.gz。注意,这里有boost版本,编译时可能需要指定boost路径。创建build目录,进入build目录后进行以下操作:
cmake -DWITH_BOOST="/root/lq_workspace/mysql-5.7./boost" ../
然后执行make和make install。注意mysql的安装路径,以便后续编译odbc时使用。例如,我将其放置在/usr/local/mysql/lib中。
接下来,开始编译ODBC:
1. 下载源码,注意编译版本所需的gcc和g++版本。我选择较低版本,非最新版本。
2. 解压后,创建build路径,开始编译。注意以下参数:
cmake ../ -DWITH_UNIXODBC=1 -DDISABLE_GUI=1 -DMYSQL_DIR="/usr/local/mysql/" -DMYSQLCLIENT_STATIC_LINKING=true
编译时出现定义冲突,我将CMakeLists.txt中不需要的部分屏蔽。
cmake时-DWITH_UNIXODBC=1指定使用unixOdbc,默认为iodbc,需在系统上先配置。
-DMYSQL_DIR="/usr/local/mysql/"表示安装libmysqlclient的路径。
-DMYSQLCLIENT_STATIC_LINKING=true连接静态库,默认为动态库。
构建完成后,提示连接libmysqlclient_r.a,低版本区分多线程支持,高版本无需区分。为连接,创建软连接:
ln -s /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/libmysqlclient_r.a
准备完成后,执行make生成所需odbc驱动。
配置mysqlodbc后,即可连接mysql。
总结:编译源码时,会遇到各种版本依赖问题,需逐一排查。同时,编译时的编译可选项作用也不容忽视。
Microsoft OLE DB Provider for ODBC Drivers (0xE)
ä½ çæ·»å æ¹æ³ææ¼æ´ç~`ç¨è¿ä¸ª:
set conn=server.createobject("adodb.connection")
DBpath = server.mappath("mdb\example.mdb")
conn.open "driver={ microsoft access driver (*.mdb)};dbq="& DBpath
name=request.form("name")
tel=request.form("tel")
message=request.form("message")
Set Rs = Server.CreateObject("ADODB.RecordSet")
SQL = "Select * From [Guestbook]"
Rs.Open SQL,Conn,1,3
Rs("Name") = Name
Rs("Tel") = Tel
Rs("Message") = Message
Rs.Update
response.write "è®°å½æ·»å æå!"