¦bLinux¤U³X°ÝMS SQL Server¼Æ¾Ú®w

- ¤¤°êWEB¶}µoªÌºôµ¸ (http://www.webasp.net)
-- §Þ³N±Ðµ{ (http://www.webasp.net/article/)
--- ¦bLinux¤U³X°ÝMS SQL Server¼Æ¾Ú®w (http://www.webasp.net/article/8/7782.htm)
-- §@ªÌ¡G¥¼ª¾
-- µo§G¤é´Á¡G 2003-09-13
¡@¡@Linux§@¬°¤@­Ó§K¶OªºUnixÃþ¾Þ§@¨t²Î¡A¥H¨ä¶}©ñ©Ê·½¥N½X¡B¦h¥ô°È¡BXúQwindowµ¥¯SÂI¬°²³¦hªº¥Î¤á©Ò±Ä¥Î¡A¨Ã¦³«Ü¦h¥ø·~±Ä¥ÎLinux¨Ó§@¬°¨ä¤º³¡ºôªº¥þ¥\¯àªA°È¾¹(WWW¡AFTP¡AEmail¡BDNS)¡C¥ø·~ªº¤º³¡ºô¤£¶È­n´£¨Ñ¤å¥»«H®§ªº³X°Ý¡AÁÙ­n¯à´£¨Ñ¹ï¥ø·~Ãö«Y¼Æ¾Ú®w¤¤ªº«H®§ªº³X°Ý¡CSQL Server¥H¨ä§C¦¨¥»¡B©Ê¯à°ª¥H¤Î»PNTªº¦³®Ä¶°¦¨µ¥¯S©Ê¬°³\¦h¥ø·~©Ò±Ä¥Î¡A¦ýMicrosoft¤£´£¨Ñ¨äUnix¤Uªº«È¤áºÝ¡A¬°³oÃþÀ³¥Î±a¨Ó¤F§xÃø¡C¥»¤å«h´£¥X¤F³o¤@°ÝÃDªº¸Ñ¨M¤è®×¡C

¦w¸ËSybase«È¤áºÝ
¡@¡@­º¥ý±qMicrosoft SQL Server©MSybase SQL ServerªºÃö«Y»¡°_¡C¨â¤½¥q´¿¦@¦P¶}µoOS/2¤Wªº¼Æ¾Ú®wSQL Server for OS/2¡A¦¹«á¨â¤½¥q¤S¿W¥ß¶}µo¤É¯Å¨t²Î¡ASybaseªº«È¤áºÝ¥i¥H³X°ÝMicrosoft SQL Server¡C
¡@¡@©M¨ä¥L¼Æ¾Ú®w¤½¥q¬Û¤ñ¡A¥i¥H»¡Sybase¤½¥q¹ïLinux¬O³Ì¦³µ½·Nªº¡A¥¦Áö¤£´£¨ÑLinux¤UªºSQL Server¡A¦ý´£¨Ñ¤F§K¶OªºCT¡ÐLIBªº«È¤áºÝ¡A³o¤]¥i¯à¬O³\¦hITºÞ²z¤H­û¦b¬°¤½¥q¼Æ¾Ú®w¿ï«¬®É¤£¦A¦Ò¼{Oracle©ÎInformixªº²z¥Ñ¤§¤@¡C·íµM²{¦b±¡ªp¦³©Ò§ïÅÜ¡C
¡@¡@Sybase¤½¥qµo§GªºOpenClientforLinux¬Oa.out®æ¦¡ªº¡A¦b¤¬Ápºô¤W¦³¤H±N¨äÂà¤Æ¬°ELF©M°ÊºAÃì±µªºELF®æ¦¡¡A¥i±q¤U¦C¦a§}¤W´M§ä¤U¸ü¡Ghttp://www.mbay.net/¡ãmpeppler¡C³Ì¦n¦P®É¤U¸ü¨â­Óª©¥»¡A¥¿±`¨Ï¥Î®É±Ä¥Î°ÊºAÃì±µªºª©¥»¡A¦ý¦³ªºµ{§Ç¦b½sͮɥi¯à»Ý­n¤@­Ó®w(libblk.a)¡A¥u¦bELF¸Ì­±¥]§t¡C
¡@¡@¤U¸ü¥H«á¡AÁä¤J¦p¤U©R¥O®i¶}(°²³]·í«e¥Ø¿ý¬O/usr/tmp)¡G
¡@¡@tar zxvf linux úQelf úQdynamic úQtar.gz
¡@¡@µM«á±N¨ä²¾¦Ü/usr/local¥Ø¿ý¡G
¡@¡@mv sybase /usr/local
¡@¡@½sĶ©M¨Ï¥ÎSybase«È¤áºÝ»Ý­n¶i¦æ¦p¤Uªº³]¸m¡G
¡@¡@1¡DInterface¤å¥óÁ|¨Ò¦p¤U¡G
¡@¡@MSSQL
¡@¡@Query tcp ether mysql 1433
¡@¡@¨ä¤¤¡G
MSSQL¬O«È¤áºÝ¨Ï¥ÎªºªA°È¾¹¦W¡A¥H«á¤Þ¥ÎMSSQL§Y¥i¡F
mysql¬OªA°È¾¹ªº¦a§}©Î¦W¦r¡A¦pªG¬O¦W¦r¡A«h¨t²Î¯à°÷¬d¨ì¨äIP¦a§}¡F
1433¬OSQL ServerªººÝ¤f¸¹¡AMicrosoft SQL Serverªº¯Ê¬Ù­È¬O1433¡ASybase¬O5000¡C
¡@¡@2¡DSYBASEÀô¹ÒÅܶq¡A¤º®e¬OSybase«È¤áºÝ©Ò¦bªº¥Ø¿ý¡G
¡@¡@ExportSYBASE=/usr/local/sybase
¡@¡@3¡D¦pªG½sĶSybase«È¤áºÝ¤¤ªº¨Ò¤l¡A«hÁÙ­n³]¸mÀô¹ÒÅܶqSYBPLATFORM¡G
¡@¡@export SYBPLATFORM=Linux
¡@¡@¨Ã¥B­×§ï¨äÀY¤å¥ó¤¤Ãö©óªA°È¾¹¦WºÙ¤Î¥Î¤á¦W©M¤f¥Oªº´y­z¡C
¨Ï¥ÎSQSH¬É­±³X°ÝSQL Server
¡@¡@Sybase«È¤áºÝ´£¨Ñ¤Fxisql¤u¨ã¡A¦ý§ó¦hªº¤H¨Ï¥Îªº¬OSQSH¡ASQSH¬OSQshellªºÁY¼g¡A¬O§ï¶i¤Fªºisql¡A¥i±q¤U¦C¦a§}¤U¸ü¡Ghttp://www.voicenet.com/¡ãgray/¡C·í«eªº³Ì·sª©¥»¬O1.6.0¡C°²³]¤U¸ü«áªº¤å¥ó©ñ¦b/usr/tmp¥Ø¿ý¤U¡G
  ¡@tar zxvf sqsq úQ1.6.0 úQtar.gz
¡@¡@cd sqsh úQ1.6.0
¡@¡@./configure
¡@¡@make;make install
¡@¡@µM«á¡A±N¥Í¦¨ªº¥i°õ¦æ¤å¥ósqsh¦w¸Ë¨ì/usr/local/bin/¥Ø¿ý¤U¡C
¡@¡@Sqshªº¨Ï¥Î¦p¤U¡G
¡@¡@¡­sqsh¡Ð¡ÐUusername¡Ð¡ÐPpassword¡Ð¡ÐSservername
¡@¡@¨ä¤¤username©Mpassword¬O¥Î¤á¦W©M¤f¥O¡Aservername¬O¦binterface¤å¥ó¤¤©w¸qªºªA°È¾¹¦W(¦p¨Ò¤l¤¤ªºMSSQL)¡C
¡@¡@Sqsh¬O¥æ¤¬¦¡ªº©R¥O¦æ¬É­±¡A©R¥O¥Î¿é¤Jgo¨Ó°õ¦æ¡A©R¥O¦pªG¸ûªø¥iª½±µ¤À¦¨´X¦æ®Ñ¼g¡A¥H¦^¨®´«¦æ§Y¥i¡C

¡@¡@¦p¤U¬O¤@­Ó¨Ò¤l¡G
¡@¡@1> use pubs
¡@¡@2> go
¡@¡@1> select ¡¯ from authors
¡@¡@2> go±Ä¥ÎCT¡ÐLIB½s¼gÀ³¥Îµ{§Ç
¡@¡@¥Ñ©óSybaseªºLinux«È¤áºÝ¤£´£¨ÑDB¡ÐLibrary¡A©Ò¥HÀ³±Ä¥ÎCT¡ÐLibrary¨Ó½s¼gÀ³¥Îµ{§Ç¡A±Ä¥ÎCT¡ÐLibrary½s¼gÀ³¥Îµ{§Ç¥i°Ñ¦Ò¨Ò¤l¡A¸Ô²Óªº½sµ{»¡©ú¥i¥H°Ñ¦ÒSybaseªº»¡©ú¡C§Q¥ÎSybperl½s¼gÀ³¥Îµ{§Ç
¡@¡@Sybperl¬OSybaseªºPerlÂX®i¡A¥i§Q¥ÎPerl»y¨¥¨Ó³X°ÝSQL Server¡A©ÎªÌ½s¼gCGIµ{§Ç¡C
¡@¡@Sybperl¥i±q¤U¦C¦a§}¨ú±ohttp://www.mbay.net/¡ãmpeppler¡C·í«eªº³Ì·sª©¥»¬O2.9.5¡C
¡@¡@¨ú±oSybperlªº·½¥N½X®i¶}¥H«á¡A»Ý­n­×§ï¤@¤UCONFIG¤å¥ó¡A¥H¤U¬O´X­Ó°Ñ¼Æ¡G
¡@¡@¤U¤@­Ó­n­×§ïªº¤å¥ó¬OPWD¡A³o¬O¥Î¨Ó¶i¦æ´ú¸Õªº¡A±N¨ä¤¤ªºªA°È¾¹¦W¡B¥Î¤á¦W¡B¥Î¤á¤f¥O³]¸m¦¨¦Û¤vªº°t¸m§Y¥i¡CµM«á¶i¦æ½sĶ¡G
¡@¡@perl Makefile.PL
¡@¡@make; make test; make install
¡@¡@¦w¸Ë¦¨¥\¥H«á¡A§Y¥i¨Ï¥ÎSybperl¶i¦æ½sµ{¡C¤U­±¬O¤@­Ó²³æªº¨Ò¤l¡C

¡@ ¡@ ¡­!/usr/bin/perl
¡@ ¡@use Sybase::CTlib;
¡@ ¡@ ¢Cdbh=new Sybase::CTlib 'sa','','MSSQL';
¡@ ¡@ ¢Cdbh ¡Ð>ct_execute("select au_id, au_lname¡A
au_fname from pubs.dbo.authors");
¡@ ¡@while( ¢Cdbh ¡Ð>ct_results( ¢Crestype) == CS_SUCCEED) {
¡@ ¡@ next unless ¢Cdbh ¡Ð>ct_fetchable( ¢Crestype);
while(( ¢Cau_id, ¢Cau_lname, ¢Cau_fname) = ¢Cdbh ¡Ð>ct_fetch){
¡@ ¡@ print " ¢Cau_id ¡Ð ¢Cau_lname au_fname\n";
¡@ ¡@ }
¡@ ¡@}
¡@¡@¥i¥H¬Ý¥X¡Aµuµu´X¦æ»y¥y¡A´N¥i¥H§¹¦¨¹ï¼Æ¾Ú®wªº¾Þ§@¡C

webasp.net