我正在开发一个数据桥项目,它将在 SalesLogix (OLEDB)、Sqlite 3 和 Pick/D3 之间传输数据。为了完成这个项目,我正在查看 ADODB。这个项目是公司选择的一个更大的 CRM 项目的一部分。我们正在处理的供应商希望我使用 Visual Studio 2013 和 .NET 语言。大多数商业智能已经在 PHP 中。
这是我的测试 Php ADODB CLI 程序:
$crlf = "\r\n";
// connection string
$cs = 'Provider=SLXOLEDB.1;Password=XX;Persist Security Info=True;';
$cs .= 'User ID=admin;Initial Catalog=PRIDE;Data Source=CRMAP;';
$cs .= "Extended Properties='PORT=1706;LOG=ON;CASEINSENSITIVEFIND=ON;";
$cs .= "AUTOINCBATCHSIZE=1;SVRCERT=;'";
try
{
$db = ADONewConnection('ado');
$db->debug = true;
}
catch(exception $e)
{
print "ADONewConnection failed$crlf";
var_dump($e);
adodb_backtrace($e->gettrace());
}
try
{
$db->Connect($cs);
}
catch(exception $e)
{
print "connect failed$crlf";
var_dump($e);
adodb_backtrace($e->gettrace());
}
?>
我在安装了 Php 5.3.10 和最新版本的 ADODB 的 Windows 7 PC 上运行它。我正在尝试连接到 SalesLogix 应用程序服务器。SalesLogix 有一个 OLE 提供程序,我正在尝试在此之上使用 ADODB 的 ADO 通用驱动程序。我还应该说 VB .NET 能够使用与上面相同的连接字符串连接到 SalesLogix 应用程序服务器。当我运行我的 PHP 程序时,我得到:
version=6.1
cs=Provider=SLXOLEDB.1;Password=XX;Persist Security Info=True;User ID=admin;
Initial Catalog=PRIDE;Data Source=CRMAP;Extended Properties='PORT=1706;LOG=ON;
CASEINSENSITIVEFIND=ON;AUTOINCBATCHSIZE=1;SVRCERT=;'
exception 'com_exception' with message 'Source: Microsoft OLE DB Service Components
Description: Format of the initialization string does not conform to the OLE DB
specification.' in C:\wamp\www\CRM\Php\adodb\drivers\adodb-ado5.inc.php:117
Stack trace:
#0 C:\wamp\www\CRM\Php\adodb\drivers\adodb-ado5.inc.php(117):
com->Open('Provider=SLXOLE...')
#1 C:\wamp\www\CRM\Php\adodb\adodb.inc.php(550):
ADODB_ado->_connect('Provider=SLXOLE...', '', '', '')
#2 C:\wamp\www\CRM\Php\crm-test1.php(28):
ADOConnection->Connect('Provider=SLXOLE...')
我的问题是:ADODB 连接字符串必须采用什么形式,我怎样才能让它工作?
TIA,瑞克