<?xml version="1.0" encoding="windows-1252"?>
<node id="117694" title="What is the difference between ADO and ODBC ?" created="2001-10-09 11:10:49" updated="2005-08-10 08:09:45">
<type id="1857">
categorized question</type>
<author id="11732">
QandAEditors</author>
<data>
<field name="doctext">
&lt;p&gt;Regarding CGI programing:&lt;/p&gt;
&lt;p&gt;I am new to DB in Perl and
I'm not sure what the difference between these
2 methods below is. I have a MS access mdb file with 
tables and data on a server. I can't ask my ISP
to create a DSN for me. I have used "method2" below and it works fine.
&lt;ul&gt;
&lt;li&gt;I wonder if these methods are multi threading?&lt;/li&gt;
&lt;li&gt;If several users access access my DB at the same time it will function properly?&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;Thank you in advance.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;method 1:&lt;/u&gt;&lt;/b&gt;
&lt;code&gt;
use Win32::OLE;

$ConnStr = "DSN=DsnName;UID=UserName;PWD=pass; 
            APP=PerlTest;WSID=MyComp;DATABASE=MyDB";

$Conn = Win32::OLE-&gt;new('ADODB.Connection'); 
$Conn-&gt;Open($ConnStr);
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;method 2:&lt;/u&gt;&lt;/b&gt;
&lt;code&gt;
use Win32::ODBC;

$DriverType = "Microsoft Access Driver (*.mdb)"; 
$DSN = "Win32 ODBC --MAOmaoMAOmaoMAO--"; 
$Dir = "c:\\perl\\cgi-bin"; 
$DBase = "mydb.mdb";

Win32::ODBC::ConfigDSN(ODBC_ADD_DSN, $DriverType, 
    ("DSN=$DSN", "Description=MAO Win32 ODBC Test DSN for perl", 
    "DBQ=$Dir\\$DBase", "DEFAULTDIR=$Dir", "UID=", "PWD=")) 
    or die "ConfigDSN(): Could not add temporary DSN" . 
    Win32::ODBC::Error();

    $db=new Win32::ODBC($DSN) or die "couldn't ODBC $DSN because", 
    Win32::ODBC::Error(), "\n";
&lt;/code&gt;
&lt;/p&gt;</field>
<field name="parent_node">
1831</field>
</data>
</node>
