- 论坛徽章:
- 0
|
關于odbtp是什麽就不多講了.直接到摘斷話吧:
ODBTP is a TCP/IP protocol for connecting to Win32-based databases from any platform. It is ideal for remotely accessing MS SQL Server, MS Access, and Visual FoxPro database from Linux or Unix machines. ODBTP is fast, efficient, and has many features that make it a quality Open Source solution for database connectivity. For more details, see the ODBTP FAQ.
詳細的資料可以從官方網站上取得
[url]http://odbtp.sourceforge.net[/url]
1. 從官方把odbtp的安裝包下載回來
[url]http://sourceforge.net/project/showfiles.php?group_id=70325[/url]
這裏下載的版本號是 1.1.4
然後用tar命令解壓
tar -zxvf odbtp-1.1.4.tar.gz
完了之後進入解壓的目錄
2. 安裝windows服務端
將裏面的 winservice目錄拷貝到安裝有odbc源的win主機上
然後在dos下進入winservice拷貝到的目錄
執行: odbtpctl install
這樣服務端就算是安裝好了.這時可以進入"控制面板"->"服務"裏面看到有odbtp服務.直接啟動他就可以了
3.安裝linux下的php擴展
進入安裝目錄的php/ext目錄下
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext# pwd
/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext#
然後編輯Makefile
修改PHP_INCROOT變量
這個變量指向的是php開發頭文件 , 我的是在/usr/include/php5下
保存後執行make命令
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext# make
gcc -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I../.. -I./odbtp -o php_odbtp.o -c odbtp/php_odbtp.c
gcc -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I../.. -I./odbtp -o odbtp.o -c ../../odbtp.c
../../odbtp.c: In function ‘odbLongLongToStr’:
../../odbtp.c:2731: warning: integer constant is too large for ‘long’ type
gcc -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I../.. -I./odbtp -o sockutil.o -c ../../sockutil.c
In file included from ../../sockutil.c:18:
../../sockutil.h:10:1: warning: "INADDR_NONE" redefined
In file included from ../../sockutil.c:11:
/usr/include/netinet/in.h:176:1: warning: this is the location of the previous definition
gcc -shared -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -o php_odbtp.so php_odbtp.o odbtp.o sockutil.o
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext#
完了之後會在當前目錄下得到php_odbtp.so文件
4.安裝php擴展
將得到的文件php_odbtp.so拷貝到php的extension目錄下
然後編輯php.ini檔
在裏面加入
extension=php_odbtp.so
這一行就可以了
後後可以通過phpinfo()看到已經加載到了這個擴展
odbtp
ODBTP (Open Database Transport Protocol) Support => enabled
ODBTP Library Version => 1.1.4
Directive => Local Value => Master Value
odbtp.datetime_format => object => object
odbtp.detach_default_queries => Off => Off
odbtp.guid_format => string => string
odbtp.interface_file => /usr/local/share/odbtp.conf => /usr/local/share/odbtp.conf
odbtp.truncation_errors => On => On
5.64位補丁
如果是64位系統,請在編譯前加上64位補丁,補丁文件請看附件
將補丁文件拷入odbtp安裝目錄
然後打補丁
shlinux:~/odbtp-1.1.4 # patch odbtp.h odbtp-1.1.4-amd64.patch
patching file odbtp.h
shlinux:~/odbtp-1.1.4 #
完了之後再編譯就OK了
6.測試程序
下面是一個PHP的測試程序
[php]
<?PHP
$conn=odbtp_connect("192.168.7.115",'DSN=a_admds;UID=username;PWD=password;');
$rlt=odbtp_query("select emp_no from pub.emp",$conn);
while($rcd=odbtp_fetch_array($rlt))
{
print_r($rcd);
}
?>
[/php]
具體函數可從官方獲得
[[i] 本帖最后由 redflowflag 于 2007-6-7 18:03 编辑 [/i]] |
|