如何在PHP中通过ADO调用Asscess数据库和COM程序


znsoft翻译 作者: John Lim.

PHP4已经支持Microsoft的COM技术。然而文档中在COM部分却提得很少。

这儿是几个我试过的例子。希望这些给你一些概念。注意的是这些只能运行在32位的Microsoft Windows平台下。

用php激活ADO
ADO是Microsoft的数据库对象技术。ADO里面包括连接数据库的对象,从查询语句中返回数据的记录集对象和表现数据元素的字段对象。
许多数据库不直接支持ADO.代之的是很多数据库支持低两级的Microsoft数据库技术:ODBC和OLEDB.许多数据库支持ODBC;但OLEDB有比ODBC更快的名声。

ADO则是包装ODBC和OLEDB的API.

这个例了打开一个新的ADO连接对象,对过ODBC打开一个传统的ACCESS数据库,然后我们执行SQL查询,会返回一个记录集对象。然后我们显示记录集的前三个字段。


<?
$dbc = new COM("ADODB.Connection");
$dbc->Provider = "MSDASQL";
$dbc->Open("nwind");
$rs = $dbc->Execute("select * from products");
$i = 0;
while (!$rs->EOF) {
$i += 1;
$fld0 = $rs->Fields(0);
$fld1 = $rs->Fields(1);
$fld2 = $rs->Fields(2);
print "$fld0->value $fld1->value $fld2->value<BR>";
$rs->MoveNext();
}
$rs->Close();
?>


用PHP调用Microsoft Word
这是另一个例子:

<?
$word=new COM("word.application") or die("Cannot start Microsoft Word");
print "Loaded word version ($word->Version)/n";
$word->visible = 1 ;
$word->Documents->Add();
$word->Selection->Typetext("This is a test");
?>
 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
通过 ADO 在 C 语言插入 SQL Server 数据库,可以参照以下示例代码: ```c #include <stdio.h> #include <windows.h> #include <ole2.h> #include <msado15.h> int main() { CoInitialize(NULL); _ConnectionPtr pConn; HRESULT hr; try { hr = pConn.CreateInstance(__uuidof(Connection)); if (FAILED(hr)) throw "Failed to create instance of Connection."; hr = pConn->Open("Provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=testdb;User ID=sa;Password=123456;", "", "", adConnectUnspecified); if (FAILED(hr)) throw "Failed to connect to database."; _RecordsetPtr pRs; hr = pRs.CreateInstance(__uuidof(Recordset)); if (FAILED(hr)) throw "Failed to create instance of Recordset."; hr = pRs->Open("INSERT INTO table1 (ID, Name) VALUES (1, 'Alice')", pConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText); if (FAILED(hr)) throw "Failed to execute SQL statement."; pRs->Close(); pConn->Close(); } catch (char* e) { printf("%s\n", e); } CoUninitialize(); return 0; } ``` 在连接字符串,需要指定 SQL Server 的 IP 地址、数据库名称、用户名和密码。在执行 SQL 语句时,可以使用 Recordset 对象来执行 INSERT、UPDATE、DELETE 等操作。需要注意的是,INSERT 语句的值需要使用单引号括起来。 插入数据的操作类似于执行查询语句,可以使用 Recordset 对象来获取操作结果。在执行完毕后,需要调用 Recordset 和 Connection 对象的 Close 方法关闭连接和记录集。 需要注意的是,在使用 ADO 连接数据库之前,需要先调用 CoInitialize 函数进行 COM 初始化,使用完毕后需要调用 CoUninitialize 函数释放资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈俊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值