开发者社区> 优惠码发放> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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. }

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【MyBatis框架点滴】——mybatis插入数据返回主键(mysql、oracle)
  向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键。主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A、B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键。
0 0
ADO:实现向Oracle数据库中插入数据
ADO:实现向Oracle数据库中插入数据http://www.bieryun.com/3286.html 1、使用Command对象完成插入。 Command 对象定义了将对数据源执行的指定命令。
774 0
oracle汉字乱码(插入数据/注释)
PL/SQL注释乱码解决: 查看Oracle的编码: SQL> SELECT USERENV('LANGUAGE') FROM DUAL; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 但乱码。 安装时候,Oracl
1161 0
4.windows和Linux下创建oracle用户名表空间,表,插入数据,用户管理表等操作
进入超级管理员,执行以下命令 Window下创建数据库,表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 根据实际安装环境进行调整 CREATE TABLESPACE ts_myscott     LOGGING     DATAFI
1128 0
Oracle Sql插入数据中特殊字符的处理
对于插入数据库数据的语句:INSERT INTO MYTABLE(FIELD1) VALUES('测试')如果插入数据库的字符串中还有单引号,需要转义处理,如插入“It's a tree.”,SQL语句如下:INSERT INTO MYTABLE(FIELD1) VALUES('It''s a tree.')如果SQL中有“&”,那么后面的字符串将被作为一个变量来处理,无法正常插入数据库。
651 0
Oracle生产数据库insert插入较慢分析过程和解决办法
Oracle生产数据库insert插入较慢分析过程和解决办法
0 0
Oracle 19C RPM安装及创建非容器数据库
Oracle 19c rpm安装及创建非容器数据库
0 0
Jdbc连接Oracle数据库详细案例,占位符的使用
Jdbc连接Oracle数据库详细案例,占位符的使用
0 0
+关注
优惠码发放
阿里云优惠码阿里云推荐券bieryun.com
文章
问答
文章排行榜
最热
最新
相关电子书
更多
EasyDBforOracle— 基于阿里云的Oracle最佳实践
立即下载
Oracle云上最佳实践
立即下载
迁移 ORACLE 最佳实践
立即下载