ADO:实现向Oracle数据库中插入数据

简介: ADO:实现向Oracle数据库中插入数据 1、使用Command对象完成插入。 Command 对象定义了将对数据源执行的指定命令。该对象中常用的属性和方法如下: ⑴ ActiveConnection 属性:该属性指定 Command 对象当前所属的 Connection 对象; ⑵ CommandText 属性:该属性包含发送给数据提供者的命令文本,该属性的值可以是 SQL 语句、表名 或 存储过程名 的字符串。

ADO:实现向Oracle数据库中插入数据

1、使用Command对象完成插入。

Command 对象定义了将对数据源执行的指定命令。该对象中常用的属性和方法如下:
⑴ ActiveConnection 属性:该属性指定 Command 对象当前所属的 Connection 对象;
⑵ CommandText 属性:该属性包含发送给数据提供者的命令文本,该属性的值可以是 SQL 语句、表名 或 存储过程名 的字符串。
⑶ CommandType 属性:指示 Command 对象的属性,其值可以取 CommandTypeEnum 中的某个值,取值类似 Recordset 对象的 Open 方法的 Options 参数。
⑷ Execute 方法:执行在 CommandText 属性中指定的查询、SQL 语句 或 存储过程。

使用 Command 对象的过程步骤:
⑴ 定义 _CommandPtr 型变量;
⑵ 实例化变量;
⑶ 设置变量的相关属性;

⑷ 调用 Execute 方法执行命令。

实例代码:

[html] view plain copy

  1. /*
  2.     功能:使用 Command 对象向数据库中插入数据
  3. */
  4. BOOL CRentDVDDlg::RentDVDByCommand(CString& strDVDID, CString& strRentName, CString& strRentDate)
  5. {
  6.     BOOL bRet = FALSE;
  7.     HRESULT hr;
  8.     /*实例化一个Command对象*/
  9.     _CommandPtr pCommand;
  10.     hr = pCommand.CreateInstance(__uuidof(Command));
  11.     if(FAILED(hr))
  12.     {
  13.         MessageBox(_T("RentDVDByCommand:Command对象实例化失败!"));
  14.         return FALSE;
  15.     }
  16.     /*关联当前连接*/
  17.     pCommand->ActiveConnection = m_pConnection;
  18.     /*组串*/
  19.     CString strSQL;
  20.     strSQL.Format(_T("insert into tbRentInfo(sDVDID,sName,sDate) values(\'%s\',\'%s\',\'%s\')"), strDVDID, strRentName, strRentDate);
  21.     pCommand->CommandText =_bstr_t(strSQL);
  22.     /*执行插入操作*/
  23.     try
  24.     {
  25.         _variant_t vRecords;
  26.         hr = pCommand->Execute(&vRecords,NULL,adCmdText);
  27.         if (SUCCEEDED(hr))
  28.         {
  29.             bRet = TRUE;
  30.         }
  31.     }
  32.     catch(_com_error *e)
  33.     {
  34.         MessageBox(e->ErrorMessage());
  35.     }
  36.     return bRet;
  37. }

2、使用Connection对象完成插入数据的操作,与上一种比较类似:

[html] view plain copy

  1. /*
  2.     功能:使用 Connection 对象向数据库中插入数据
  3. */
  4. BOOL CRentDVDDlg::RentDVDByConnection(CString& strDVDID, CString& strRentName, CString& strRentDate)
  5. {
  6.     BOOL bRet = FALSE;
  7.     HRESULT hr;
  8.     /*组串*/
  9.     CString strSQL;
  10.     strSQL.Format(_T("insert into tbRentInfo(sDVDID,sName,sDate) values(\'%s\',\'%s\',\'%s\')"), strDVDID, strRentName, strRentDate);
  11.     /*执行插入操作*/
  12.     try
  13.     {
  14.         _variant_t vRecords,RecordsAffected;
  15.         hr = m_pConnection->Execute(_bstr_t(strSQL), &RecordsAffected, adCmdText);
  16.         if (SUCCEEDED(hr))
  17.         {
  18.             bRet = TRUE;
  19.         }
  20.     }
  21.     catch(_com_error *e)
  22.     {
  23.         MessageBox(e->ErrorMessage());
  24.     }
  25.     return bRet;
  26. }

3、使用RecordSet对象完成插入数据操作,RecordSet对象的使用前面文章有介绍:

[html] view plain copy

  1. /*
  2.     功能:使用 Connection 对象向数据库中插入数据
  3. */
  4. BOOL CRentDVDDlg::RentDVDByConnection(CString& strDVDID, CString& strRentName, CString& strRentDate)
  5. {
  6.     BOOL bRet = FALSE;
  7.     HRESULT hr;
  8.     /*组串*/
  9.     CString strSQL;
  10.     strSQL.Format(_T("insert into tbRentInfo(sDVDID,sName,sDate) values(\'%s\',\'%s\',\'%s\')"), strDVDID, strRentName, strRentDate);
  11.     /*执行插入操作*/
  12.     try
  13.     {
  14.         _variant_t vRecords,RecordsAffected;
  15.         hr = m_pConnection->Execute(_bstr_t(strSQL), &RecordsAffected, adCmdText);
  16.         if (SUCCEEDED(hr))
  17.         {
  18.             bRet = TRUE;
  19.         }
  20.     }
  21.     catch(_com_error *e)
  22.     {
  23.         MessageBox(e->ErrorMessage());
  24.     }
  25.     return bRet;
  26. }
相关文章
|
1月前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
157 75
|
5天前
|
JSON Java 关系型数据库
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
21 2
|
2月前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
57 1
|
2月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
2月前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
70 5
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
158 11
|
3月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
2月前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
4月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
333 64
|
3月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。

热门文章

最新文章

推荐镜像

更多