From c87698746a70cd651adab6fce20b488813128ebf Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Wed, 8 Jul 2020 16:55:59 +0800 Subject: [PATCH] ... --- .../oracle/ImportToOracle.cpp | 366 +++++++++++++++++- 1 file changed, 364 insertions(+), 2 deletions(-) diff --git a/代码/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp b/代码/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp index ad946fc..add2e88 100644 --- a/代码/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp +++ b/代码/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp @@ -559,7 +559,7 @@ void ImportNewRepairMonitorToOracle( const std::string & const std::vector & recordVector ) { OCI_Connection * pConnection = nullptr; - OCI_Statement * pStatment = nullptr; + OCI_Statement * pStatement = nullptr; int returnCode = -1; const otext * szSql = @@ -733,7 +733,7 @@ void ImportNewRepairMonitorToOracle( const std::string & } //连接 - pConnection = OCI_CreateConnection( tnsName.c_str(), + pConnection = OCI_ConnectionCreate( tnsName.c_str(), userName.c_str(), password.c_str(), OCI_SESSION_DEFAULT ); @@ -742,4 +742,366 @@ void ImportNewRepairMonitorToOracle( const std::string & { throw runtime_error( "" ); } + + pStatement = OCI_StatementCreate( pConnection ); + + if ( pStatement == nullptr ) + { + } + + try + { + OCI_AllowRebinding( pStatement, true ); + OCI_Prepare( pStatement, szSql ); + } + catch ( runtime_error & error ) + { + //绑定语句失败 + } + + for ( auto iter = recordVector.begin(); + iter != recordVector.end(); + ++iter ) + { + try + { + //const string && 分公司名称 = QString::fromStdWString( iter->分公司名称_ ).toStdString(); + const string && 分公司名称 = QString::fromStdWString( iter->分公司名称_ ).toStdString(); + const string && 部门组名称 = QString::fromStdWString( iter->部门组名称_ ).toStdString(); + const string && 报案号 = QString::fromStdWString( iter->报案号_ ).toStdString(); + const string && 报案日期 = QString::fromStdWString( iter->报案日期_ ).toStdString(); + const string && 出险日期 = QString::fromStdWString( iter->出险日期_ ).toStdString(); + const string && 出险地点 = QString::fromStdWString( iter->出险地点_ ).toStdString(); + const string && 事故车目前位置 = QString::fromStdWString( iter->事故车目前位置_ ).toStdString(); + const string && 车损序号 = QString::fromStdWString( iter->车损序号_ ).toStdString(); + const string && 车牌 = QString::fromStdWString( iter->车牌_ ).toStdString(); + const string && vin码 = QString::fromStdWString( iter->vin码_ ).toStdString(); + const string && 车龄 = QString::fromStdWString( iter->车龄_ ).toStdString(); + const string && 品牌代码 = QString::fromStdWString( iter->品牌代码_ ).toStdString(); + const string && 品牌名称 = QString::fromStdWString( iter->品牌名称_ ).toStdString(); + const string && 车系名称 = QString::fromStdWString( iter->车系名称_ ).toStdString(); + const string && 使用性质名称 = QString::fromStdWString( iter->使用性质名称_ ).toStdString(); + const string && 保单号 = QString::fromStdWString( iter->保单号_ ).toStdString(); + const string && 标的车三者车 = QString::fromStdWString( iter->标的车_三者车_ ).toStdString(); + const string && 是否9座以下企业用车行政用车家庭自用车 = QString::fromStdWString( iter->是否9座以下企业用车_行政用车_家庭自用车_ ).toStdString(); + const string && 核价金额 = QString::fromStdWString( iter->核价金额_ ).toStdString(); + const string && 核损配件核损金额 = QString::fromStdWString( iter->核损配件核损金额_ ).toStdString(); + const string && 核损工时费核损金额 = QString::fromStdWString( iter->核损工时费核损金额_ ).toStdString(); + const string && 核损辅料核损金额 = QString::fromStdWString( iter->核损辅料核损金额_ ).toStdString(); + const string && 核损外修费核损金额 = QString::fromStdWString( iter->核损外修费核损金额_ ).toStdString(); + const string && 核损施救费核损金额 = QString::fromStdWString( iter->核损施救费核损金额_ ).toStdString(); + const string && 结案金额 = QString::fromStdWString( iter->结案金额_ ).toStdString(); + const string && 结案配件核损金额 = QString::fromStdWString( iter->结案配件核损金额_ ).toStdString(); + const string && 结案工时费核损金额 = QString::fromStdWString( iter->结案工时费核损金额_ ).toStdString(); + const string && 结案辅料核损金额 = QString::fromStdWString( iter->结案辅料核损金额_ ).toStdString(); + const string && 结案外修费核损金额 = QString::fromStdWString( iter->结案外修费核损金额_ ).toStdString(); + const string && 结案施救费核损金额 = QString::fromStdWString( iter->结案施救费核损金额_ ).toStdString(); + const string && 接报案人分公司名称 = QString::fromStdWString( iter->接报案人分公司名称_ ).toStdString(); + const string && 接报案人工号 = QString::fromStdWString( iter->接报案人工号_ ).toStdString(); + const string && 接报案人名称 = QString::fromStdWString( iter->接报案人名称_ ).toStdString(); + const string && 第一任务分派时间 = QString::fromStdWString( iter->第一任务分派时间_ ).toStdString(); + const string && 第一定损员分公司 = QString::fromStdWString( iter->第一定损员分公司_ ).toStdString(); + const string && 第一定损员部门组名称 = QString::fromStdWString( iter->第一定损员部门组名称_ ).toStdString(); + const string && 第一定损员代码 = QString::fromStdWString( iter->第一定损员代码_ ).toStdString(); + const string && 第一定损员名称 = QString::fromStdWString( iter->第一定损员名称_ ).toStdString(); + const string && 第一车商是否已阅读 = QString::fromStdWString( iter->第一车商是否已阅读_ ).toStdString(); + const string && 第一车上是否预约进厂 = QString::fromStdWString( iter->第一车上是否预约进厂_ ).toStdString(); + const string && 第一车商是否推荐失败 = QString::fromStdWString( iter->第一车商是否推荐失败_ ).toStdString(); + const string && 第一车商是否进厂确认 = QString::fromStdWString( iter->第一车商是否进厂确认_ ).toStdString(); + const string && 第一车商是否出场确认 = QString::fromStdWString( iter->第一车商是否出场确认_ ).toStdString(); + const string && 第二任务分派时间 = QString::fromStdWString( iter->第二任务分派时间_ ).toStdString(); + const string && 第二定损员分公司 = QString::fromStdWString( iter->第二定损员分公司_ ).toStdString(); + const string && 第二定损员部门组名称 = QString::fromStdWString( iter->第二定损员部门组名称_ ).toStdString(); + const string && 第二定损员代码 = QString::fromStdWString( iter->第二定损员代码_ ).toStdString(); + const string && 第二定损员名称 = QString::fromStdWString( iter->第二定损员名称_ ).toStdString(); + const string && 第二车商是否已阅读 = QString::fromStdWString( iter->第二车商是否已阅读_ ).toStdString(); + const string && 第二车上是否预约进厂 = QString::fromStdWString( iter->第二车上是否预约进厂_ ).toStdString(); + const string && 第二车商是否推荐失败 = QString::fromStdWString( iter->第二车商是否推荐失败_ ).toStdString(); + const string && 第二车商是否进厂确认 = QString::fromStdWString( iter->第二车商是否进厂确认_ ).toStdString(); + const string && 第二车商是否出场确认 = QString::fromStdWString( iter->第二车商是否出场确认_ ).toStdString(); + const string && 第三任务分派时间 = QString::fromStdWString( iter->第三任务分派时间_ ).toStdString(); + const string && 第三定损员分公司 = QString::fromStdWString( iter->第三定损员分公司_ ).toStdString(); + const string && 第三定损员部门组名称 = QString::fromStdWString( iter->第三定损员部门组名称_ ).toStdString(); + const string && 第三定损员代码 = QString::fromStdWString( iter->第三定损员代码_ ).toStdString(); + const string && 第三定损员名称 = QString::fromStdWString( iter->第三定损员名称_ ).toStdString(); + const string && 第三车商是否已阅读 = QString::fromStdWString( iter->第三车商是否已阅读_ ).toStdString(); + const string && 第三车上是否预约进厂 = QString::fromStdWString( iter->第三车上是否预约进厂_ ).toStdString(); + const string && 第三车商是否推荐失败 = QString::fromStdWString( iter->第三车商是否推荐失败_ ).toStdString(); + const string && 第三车商是否进厂确认 = QString::fromStdWString( iter->第三车商是否进厂确认_ ).toStdString(); + const string && 第三车商是否出场确认 = QString::fromStdWString( iter->第三车商是否出场确认_ ).toStdString(); + const string && 其他查勘员信息 = QString::fromStdWString( iter->其他查勘员信息_ ).toStdString(); + const string && 是否推荐 = QString::fromStdWString( iter->是否推荐_ ).toStdString(); + const string && 是否存在工单 = QString::fromStdWString( iter->是否存在工单_ ).toStdString(); + const string && 工单类型 = QString::fromStdWString( iter->工单类型_ ).toStdString(); + const string && 查勘员操作类型 = QString::fromStdWString( iter->查勘员操作类型_ ).toStdString(); + const string && 案件状态名称 = QString::fromStdWString( iter->案件状态名称_ ).toStdString(); + const string && 车状当前状态 = QString::fromStdWString( iter->车状_当前状态_ ).toStdString(); + const string && 车状报案环节 = QString::fromStdWString( iter->车状_报案环节_ ).toStdString(); + const string && 车状现场推荐环节 = QString::fromStdWString( iter->车状_现场推荐环节_ ).toStdString(); + const string && 车状核价通过环节 = QString::fromStdWString( iter->车状_核价通过环节_ ).toStdString(); + const string && 车状结案环节 = QString::fromStdWString( iter->车状_结案环节_ ).toStdString(); + const string && 承保车商代码 = QString::fromStdWString( iter->承保车商代码_ ).toStdString(); + const string && 承保车商名称 = QString::fromStdWString( iter->承保车商名称_ ).toStdString(); + const string && 报案车商分公司名称 = QString::fromStdWString( iter->报案车商分公司名称_ ).toStdString(); + const string && 报案车商部门组名称 = QString::fromStdWString( iter->报案车商部门组名称_ ).toStdString(); + const string && 报案车商代码 = QString::fromStdWString( iter->报案车商代码_ ).toStdString(); + const string && 报案车商名称 = QString::fromStdWString( iter->报案车商名称_ ).toStdString(); + const string && 现场推荐车商分公司名称 = QString::fromStdWString( iter->现场推荐车商分公司名称_ ).toStdString(); + const string && 现场推荐车商代码 = QString::fromStdWString( iter->现场推荐车商代码_ ).toStdString(); + const string && 现场推荐车商名称 = QString::fromStdWString( iter->现场推荐车商名称_ ).toStdString(); + const string && 核价车商分公司名称 = QString::fromStdWString( iter->核价车商分公司名称_ ).toStdString(); + const string && 核价车商部门组名称 = QString::fromStdWString( iter->核价车商部门组名称_ ).toStdString(); + const string && 核价车商代码 = QString::fromStdWString( iter->核价车商代码_ ).toStdString(); + const string && 核价车商名称 = QString::fromStdWString( iter->核价车商名称_ ).toStdString(); + const string && 推荐车商与核价车商是否一致 = QString::fromStdWString( iter->推荐车商与核价车商是否一致_ ).toStdString(); + const string && 核价修理厂归属公司代码 = QString::fromStdWString( iter->核价修理厂归属公司代码_ ).toStdString(); + const string && 核价修理厂归属公司名称 = QString::fromStdWString( iter->核价修理厂归属公司名称_ ).toStdString(); + const string && 核价修理厂 = QString::fromStdWString( iter->核价修理厂_ ).toStdString(); + const string && 核价修理厂名称 = QString::fromStdWString( iter->核价修理厂名称_ ).toStdString(); + const string && 估损单号 = QString::fromStdWString( iter->估损单号_ ).toStdString(); + const string && 核价通过时间 = QString::fromStdWString( iter->核价通过时间_ ).toStdString(); + const string && 定损员机构 = QString::fromStdWString( iter->定损员机构_ ).toStdString(); + const string && 定损员代码 = QString::fromStdWString( iter->定损员代码_ ).toStdString(); + const string && 定损员名称 = QString::fromStdWString( iter->定损员名称_ ).toStdString(); + const string && 结案车商分公司 = QString::fromStdWString( iter->结案车商分公司_ ).toStdString(); + const string && 结案车商部门组名称 = QString::fromStdWString( iter->结案车商部门组名称_ ).toStdString(); + const string && 结案车商代码 = QString::fromStdWString( iter->结案车商代码_ ).toStdString(); + const string && 结案车商名称 = QString::fromStdWString( iter->结案车商名称_ ).toStdString(); + const string && 推荐车商与结案车商是否一致 = QString::fromStdWString( iter->推荐车商与结案车商是否一致_ ).toStdString(); + const string && 结案修理厂归属公司代码 = QString::fromStdWString( iter->结案修理厂归属公司代码_ ).toStdString(); + const string && 结案修理厂归属公司名称 = QString::fromStdWString( iter->结案修理厂归属公司名称_ ).toStdString(); + const string && 结案修理厂代码 = QString::fromStdWString( iter->结案修理厂代码_ ).toStdString(); + const string && 结案修理厂名称 = QString::fromStdWString( iter->结案修理厂名称_ ).toStdString(); + const string && 车辆进厂时间 = QString::fromStdWString( iter->车辆进厂时间_ ).toStdString(); + const string && 车辆出厂时间 = QString::fromStdWString( iter->车辆出厂时间_ ).toStdString(); + const string && 结案时间 = QString::fromStdWString( iter->结案时间_ ).toStdString(); + const string && 事故经过 = QString::fromStdWString( iter->事故经过_ ).toStdString(); + const string && 数据更新日期 = QString::fromStdWString( iter->数据更新日期_ ).toStdString(); + const string && 备注 = QString::fromStdWString( iter->备注_ ).toStdString(); + const string && 估损单模板 = QString::fromStdWString( iter->估损单模板_ ).toStdString(); + const string && 返修开关报案 = QString::fromStdWString( iter->返修开关_报案_ ).toStdString(); + const string && 送修开关报案 = QString::fromStdWString( iter->送修开关_报案_ ).toStdString(); + const string && 返修开关核价 = QString::fromStdWString( iter->返修开关_核价_ ).toStdString(); + const string && 送修开关核价 = QString::fromStdWString( iter->送修开关_核价_ ).toStdString(); + const string && 返修开关结案 = QString::fromStdWString( iter->返修开关_结案_ ).toStdString(); + const string && 送修开关结案 = QString::fromStdWString( iter->送修开关_结案_ ).toStdString(); + const string && 查勘员分公司名称 = QString::fromStdWString( iter->查勘员分公司名称_ ).toStdString(); + const string && 查勘员代码 = QString::fromStdWString( iter->查勘员代码_ ).toStdString(); + const string && 查勘员名称 = QString::fromStdWString( iter->查勘员名称_ ).toStdString(); + const string && 核价修理厂归属中支 = QString::fromStdWString( iter->核价修理厂归属中支_ ).toStdString(); + const string && 结案修理厂归属中支 = QString::fromStdWString( iter->结案修理厂归属中支_ ).toStdString(); + const string && 是否诉讼 = QString::fromStdWString( iter->是否诉讼_ ).toStdString(); + const string && 座席推荐分公司代码 = QString::fromStdWString( iter->座席推荐分公司代码_ ).toStdString(); + const string && 座席推荐分公司名称 = QString::fromStdWString( iter->座席推荐分公司名称_ ).toStdString(); + const string && 座席推荐车商名代码 = QString::fromStdWString( iter->座席推荐车商名代码_ ).toStdString(); + const string && 座席推荐车商名称 = QString::fromStdWString( iter->座席推荐车商名称_ ).toStdString(); + const string && 座席推荐操作类型 = QString::fromStdWString( iter->座席推荐操作类型_ ).toStdString(); + const string && 座席推荐排名 = QString::fromStdWString( iter->座席推荐排名_ ).toStdString(); + const string && 第一次推荐分公司代码 = QString::fromStdWString( iter->第一次推荐分公司代码_ ).toStdString(); + const string && 第一次推荐分公司名称 = QString::fromStdWString( iter->第一次推荐分公司名称_ ).toStdString(); + const string && 第一次推荐车商代码 = QString::fromStdWString( iter->第一次推荐车商代码_ ).toStdString(); + const string && 第一次推荐车商名称 = QString::fromStdWString( iter->第一次推荐车商名称_ ).toStdString(); + const string && 第一次推荐工具 = QString::fromStdWString( iter->第一次推荐工具_ ).toStdString(); + const string && 第一次推荐操作类型 = QString::fromStdWString( iter->第一次推荐操作类型_ ).toStdString(); + const string && 第一次推荐排名其他推荐信息 = QString::fromStdWString( iter->第一次推荐排名_其他推荐信息_ ).toStdString(); + const string && 第二次推荐分公司代码 = QString::fromStdWString( iter->第二次推荐分公司代码_ ).toStdString(); + const string && 第二次推荐分公司名称 = QString::fromStdWString( iter->第二次推荐分公司名称_ ).toStdString(); + const string && 第二次推荐车商代码 = QString::fromStdWString( iter->第二次推荐车商代码_ ).toStdString(); + const string && 第二次推荐车商名称 = QString::fromStdWString( iter->第二次推荐车商名称_ ).toStdString(); + const string && 第二次推荐工具 = QString::fromStdWString( iter->第二次推荐工具_ ).toStdString(); + const string && 第二次推荐操作类型 = QString::fromStdWString( iter->第二次推荐操作类型_ ).toStdString(); + const string && 第二次推荐排名其他推荐信息 = QString::fromStdWString( iter->第二次推荐排名_其他推荐信息_ ).toStdString(); + const string && 第三次推荐分公司代码 = QString::fromStdWString( iter->第三次推荐分公司代码_ ).toStdString(); + const string && 第三次推荐分公司名称 = QString::fromStdWString( iter->第三次推荐分公司名称_ ).toStdString(); + const string && 第三次推荐车商代码 = QString::fromStdWString( iter->第三次推荐车商代码_ ).toStdString(); + const string && 第三次推荐车商名称 = QString::fromStdWString( iter->第三次推荐车商名称_ ).toStdString(); + const string && 第三次推荐工具 = QString::fromStdWString( iter->第三次推荐工具_ ).toStdString(); + const string && 第三次推荐操作类型 = QString::fromStdWString( iter->第三次推荐操作类型_ ).toStdString(); + const string && 第三次推荐排名其他推荐信息 = QString::fromStdWString( iter->第三次推荐排名_其他推荐信息_ ).toStdString(); + const string && 其他推荐信息 = QString::fromStdWString( iter->其他推荐信息_ ).toStdString(); + const string && 推荐失败具体原因 = QString::fromStdWString( iter->推荐失败具体原因_ ).toStdString(); + const string && 是否现场报案 = QString::fromStdWString( iter->是否现场报案_ ).toStdString(); + const string && 报案地点 = QString::fromStdWString( iter->报案地点_ ).toStdString(); + const string && 是否在厂报案 = QString::fromStdWString( iter->是否在厂报案_ ).toStdString(); + + OCI_BindString( pStatement, (const otext*)(':1'), (otext*)(分公司名称.c_str()), 分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':2'), (otext*)(部门组名称.c_str()), 部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':3'), (otext*)(报案号.c_str()), 报案号.size() ); + OCI_BindString( pStatement, (const otext*)(':4'), (otext*)(报案日期.c_str()), 报案日期.size() ); + OCI_BindString( pStatement, (const otext*)(':5'), (otext*)(出险日期.c_str()), 出险日期.size() ); + OCI_BindString( pStatement, (const otext*)(':6'), (otext*)(出险地点.c_str()), 出险地点.size() ); + OCI_BindString( pStatement, (const otext*)(':7'), (otext*)(事故车目前位置.c_str()), 事故车目前位置.size() ); + OCI_BindString( pStatement, (const otext*)(':8'), (otext*)(车损序号.c_str()), 车损序号.size() ); + OCI_BindString( pStatement, (const otext*)(':9'), (otext*)(车牌.c_str()), 车牌.size() ); + OCI_BindString( pStatement, (const otext*)(':10'), (otext*)(vin码.c_str()), vin码.size() ); + OCI_BindString( pStatement, (const otext*)(':11'), (otext*)(车龄.c_str()), 车龄.size() ); + OCI_BindString( pStatement, (const otext*)(':12'), (otext*)(品牌代码.c_str()), 品牌代码.size() ); + OCI_BindString( pStatement, (const otext*)(':13'), (otext*)(品牌名称.c_str()), 品牌名称.size() ); + OCI_BindString( pStatement, (const otext*)(':14'), (otext*)(车系名称.c_str()), 车系名称.size() ); + OCI_BindString( pStatement, (const otext*)(':15'), (otext*)(使用性质名称.c_str()), 使用性质名称.size() ); + OCI_BindString( pStatement, (const otext*)(':16'), (otext*)(保单号.c_str()), 保单号.size() ); + OCI_BindString( pStatement, (const otext*)(':17'), (otext*)(标的车三者车.c_str()), 标的车三者车.size() ); + OCI_BindString( pStatement, (const otext*)(':18'), (otext*)(是否9座以下企业用车行政用车家庭自用车.c_str()), 是否9座以下企业用车行政用车家庭自用车.size() ); + OCI_BindString( pStatement, (const otext*)(':19'), (otext*)(核价金额.c_str()), 核价金额.size() ); + OCI_BindString( pStatement, (const otext*)(':20'), (otext*)(核损配件核损金额.c_str()), 核损配件核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':21'), (otext*)(核损工时费核损金额.c_str()), 核损工时费核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':22'), (otext*)(核损辅料核损金额.c_str()), 核损辅料核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':23'), (otext*)(核损外修费核损金额.c_str()), 核损外修费核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':24'), (otext*)(核损施救费核损金额.c_str()), 核损施救费核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':25'), (otext*)(结案金额.c_str()), 结案金额.size() ); + OCI_BindString( pStatement, (const otext*)(':26'), (otext*)(结案配件核损金额.c_str()), 结案配件核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':27'), (otext*)(结案工时费核损金额.c_str()), 结案工时费核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':28'), (otext*)(结案辅料核损金额.c_str()), 结案辅料核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':29'), (otext*)(结案外修费核损金额.c_str()), 结案外修费核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':30'), (otext*)(结案施救费核损金额.c_str()), 结案施救费核损金额.size() ); + OCI_BindString( pStatement, (const otext*)(':31'), (otext*)(接报案人分公司名称.c_str()), 接报案人分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':32'), (otext*)(接报案人工号.c_str()), 接报案人工号.size() ); + OCI_BindString( pStatement, (const otext*)(':33'), (otext*)(接报案人名称.c_str()), 接报案人名称.size() ); + OCI_BindString( pStatement, (const otext*)(':34'), (otext*)(第一任务分派时间.c_str()), 第一任务分派时间.size() ); + OCI_BindString( pStatement, (const otext*)(':35'), (otext*)(第一定损员分公司.c_str()), 第一定损员分公司.size() ); + OCI_BindString( pStatement, (const otext*)(':36'), (otext*)(第一定损员部门组名称.c_str()), 第一定损员部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':37'), (otext*)(第一定损员代码.c_str()), 第一定损员代码.size() ); + OCI_BindString( pStatement, (const otext*)(':38'), (otext*)(第一定损员名称.c_str()), 第一定损员名称.size() ); + OCI_BindString( pStatement, (const otext*)(':39'), (otext*)(第一车商是否已阅读.c_str()), 第一车商是否已阅读.size() ); + OCI_BindString( pStatement, (const otext*)(':40'), (otext*)(第一车上是否预约进厂.c_str()), 第一车上是否预约进厂.size() ); + OCI_BindString( pStatement, (const otext*)(':41'), (otext*)(第一车商是否推荐失败.c_str()), 第一车商是否推荐失败.size() ); + OCI_BindString( pStatement, (const otext*)(':42'), (otext*)(第一车商是否进厂确认.c_str()), 第一车商是否进厂确认.size() ); + OCI_BindString( pStatement, (const otext*)(':43'), (otext*)(第一车商是否出场确认.c_str()), 第一车商是否出场确认.size() ); + OCI_BindString( pStatement, (const otext*)(':44'), (otext*)(第二任务分派时间.c_str()), 第二任务分派时间.size() ); + OCI_BindString( pStatement, (const otext*)(':45'), (otext*)(第二定损员分公司.c_str()), 第二定损员分公司.size() ); + OCI_BindString( pStatement, (const otext*)(':46'), (otext*)(第二定损员部门组名称.c_str()), 第二定损员部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':47'), (otext*)(第二定损员代码.c_str()), 第二定损员代码.size() ); + OCI_BindString( pStatement, (const otext*)(':48'), (otext*)(第二定损员名称.c_str()), 第二定损员名称.size() ); + OCI_BindString( pStatement, (const otext*)(':49'), (otext*)(第二车商是否已阅读.c_str()), 第二车商是否已阅读.size() ); + OCI_BindString( pStatement, (const otext*)(':50'), (otext*)(第二车上是否预约进厂.c_str()), 第二车上是否预约进厂.size() ); + OCI_BindString( pStatement, (const otext*)(':51'), (otext*)(第二车商是否推荐失败.c_str()), 第二车商是否推荐失败.size() ); + OCI_BindString( pStatement, (const otext*)(':52'), (otext*)(第二车商是否进厂确认.c_str()), 第二车商是否进厂确认.size() ); + OCI_BindString( pStatement, (const otext*)(':53'), (otext*)(第二车商是否出场确认.c_str()), 第二车商是否出场确认.size() ); + OCI_BindString( pStatement, (const otext*)(':54'), (otext*)(第三任务分派时间.c_str()), 第三任务分派时间.size() ); + OCI_BindString( pStatement, (const otext*)(':55'), (otext*)(第三定损员分公司.c_str()), 第三定损员分公司.size() ); + OCI_BindString( pStatement, (const otext*)(':56'), (otext*)(第三定损员部门组名称.c_str()), 第三定损员部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':57'), (otext*)(第三定损员代码.c_str()), 第三定损员代码.size() ); + OCI_BindString( pStatement, (const otext*)(':58'), (otext*)(第三定损员名称.c_str()), 第三定损员名称.size() ); + OCI_BindString( pStatement, (const otext*)(':59'), (otext*)(第三车商是否已阅读.c_str()), 第三车商是否已阅读.size() ); + OCI_BindString( pStatement, (const otext*)(':60'), (otext*)(第三车上是否预约进厂.c_str()), 第三车上是否预约进厂.size() ); + OCI_BindString( pStatement, (const otext*)(':61'), (otext*)(第三车商是否推荐失败.c_str()), 第三车商是否推荐失败.size() ); + OCI_BindString( pStatement, (const otext*)(':62'), (otext*)(第三车商是否进厂确认.c_str()), 第三车商是否进厂确认.size() ); + OCI_BindString( pStatement, (const otext*)(':63'), (otext*)(第三车商是否出场确认.c_str()), 第三车商是否出场确认.size() ); + OCI_BindString( pStatement, (const otext*)(':64'), (otext*)(其他查勘员信息.c_str()), 其他查勘员信息.size() ); + OCI_BindString( pStatement, (const otext*)(':65'), (otext*)(是否推荐.c_str()), 是否推荐.size() ); + OCI_BindString( pStatement, (const otext*)(':66'), (otext*)(是否存在工单.c_str()), 是否存在工单.size() ); + OCI_BindString( pStatement, (const otext*)(':67'), (otext*)(工单类型.c_str()), 工单类型.size() ); + OCI_BindString( pStatement, (const otext*)(':68'), (otext*)(查勘员操作类型.c_str()), 查勘员操作类型.size() ); + OCI_BindString( pStatement, (const otext*)(':69'), (otext*)(案件状态名称.c_str()), 案件状态名称.size() ); + OCI_BindString( pStatement, (const otext*)(':70'), (otext*)(车状当前状态.c_str()), 车状当前状态.size() ); + OCI_BindString( pStatement, (const otext*)(':71'), (otext*)(车状报案环节.c_str()), 车状报案环节.size() ); + OCI_BindString( pStatement, (const otext*)(':72'), (otext*)(车状现场推荐环节.c_str()), 车状现场推荐环节.size() ); + OCI_BindString( pStatement, (const otext*)(':73'), (otext*)(车状核价通过环节.c_str()), 车状核价通过环节.size() ); + OCI_BindString( pStatement, (const otext*)(':74'), (otext*)(车状结案环节.c_str()), 车状结案环节.size() ); + OCI_BindString( pStatement, (const otext*)(':75'), (otext*)(承保车商代码.c_str()), 承保车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':76'), (otext*)(承保车商名称.c_str()), 承保车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':77'), (otext*)(报案车商分公司名称.c_str()), 报案车商分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':78'), (otext*)(报案车商部门组名称.c_str()), 报案车商部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':79'), (otext*)(报案车商代码.c_str()), 报案车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':80'), (otext*)(报案车商名称.c_str()), 报案车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':81'), (otext*)(现场推荐车商分公司名称.c_str()), 现场推荐车商分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':82'), (otext*)(现场推荐车商代码.c_str()), 现场推荐车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':83'), (otext*)(现场推荐车商名称.c_str()), 现场推荐车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':84'), (otext*)(核价车商分公司名称.c_str()), 核价车商分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':85'), (otext*)(核价车商部门组名称.c_str()), 核价车商部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':86'), (otext*)(核价车商代码.c_str()), 核价车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':87'), (otext*)(核价车商名称.c_str()), 核价车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':88'), (otext*)(推荐车商与核价车商是否一致.c_str()), 推荐车商与核价车商是否一致.size() ); + OCI_BindString( pStatement, (const otext*)(':89'), (otext*)(核价修理厂归属公司代码.c_str()), 核价修理厂归属公司代码.size() ); + OCI_BindString( pStatement, (const otext*)(':90'), (otext*)(核价修理厂归属公司名称.c_str()), 核价修理厂归属公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':91'), (otext*)(核价修理厂.c_str()), 核价修理厂.size() ); + OCI_BindString( pStatement, (const otext*)(':92'), (otext*)(核价修理厂名称.c_str()), 核价修理厂名称.size() ); + OCI_BindString( pStatement, (const otext*)(':93'), (otext*)(估损单号.c_str()), 估损单号.size() ); + OCI_BindString( pStatement, (const otext*)(':94'), (otext*)(核价通过时间.c_str()), 核价通过时间.size() ); + OCI_BindString( pStatement, (const otext*)(':95'), (otext*)(定损员机构.c_str()), 定损员机构.size() ); + OCI_BindString( pStatement, (const otext*)(':96'), (otext*)(定损员代码.c_str()), 定损员代码.size() ); + OCI_BindString( pStatement, (const otext*)(':97'), (otext*)(定损员名称.c_str()), 定损员名称.size() ); + OCI_BindString( pStatement, (const otext*)(':98'), (otext*)(结案车商分公司.c_str()), 结案车商分公司.size() ); + OCI_BindString( pStatement, (const otext*)(':99'), (otext*)(结案车商部门组名称.c_str()), 结案车商部门组名称.size() ); + OCI_BindString( pStatement, (const otext*)(':100'), (otext*)(结案车商代码.c_str()), 结案车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':101'), (otext*)(结案车商名称.c_str()), 结案车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':102'), (otext*)(推荐车商与结案车商是否一致.c_str()), 推荐车商与结案车商是否一致.size() ); + OCI_BindString( pStatement, (const otext*)(':103'), (otext*)(结案修理厂归属公司代码.c_str()), 结案修理厂归属公司代码.size() ); + OCI_BindString( pStatement, (const otext*)(':104'), (otext*)(结案修理厂归属公司名称.c_str()), 结案修理厂归属公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':105'), (otext*)(结案修理厂代码.c_str()), 结案修理厂代码.size() ); + OCI_BindString( pStatement, (const otext*)(':106'), (otext*)(结案修理厂名称.c_str()), 结案修理厂名称.size() ); + OCI_BindString( pStatement, (const otext*)(':107'), (otext*)(车辆进厂时间.c_str()), 车辆进厂时间.size() ); + OCI_BindString( pStatement, (const otext*)(':108'), (otext*)(车辆出厂时间.c_str()), 车辆出厂时间.size() ); + OCI_BindString( pStatement, (const otext*)(':109'), (otext*)(结案时间.c_str()), 结案时间.size() ); + OCI_BindString( pStatement, (const otext*)(':110'), (otext*)(事故经过.c_str()), 事故经过.size() ); + OCI_BindString( pStatement, (const otext*)(':111'), (otext*)(数据更新日期.c_str()), 数据更新日期.size() ); + OCI_BindString( pStatement, (const otext*)(':112'), (otext*)(备注.c_str()), 备注.size() ); + OCI_BindString( pStatement, (const otext*)(':113'), (otext*)(估损单模板.c_str()), 估损单模板.size() ); + OCI_BindString( pStatement, (const otext*)(':114'), (otext*)(返修开关报案.c_str()), 返修开关报案.size() ); + OCI_BindString( pStatement, (const otext*)(':115'), (otext*)(送修开关报案.c_str()), 送修开关报案.size() ); + OCI_BindString( pStatement, (const otext*)(':116'), (otext*)(返修开关核价.c_str()), 返修开关核价.size() ); + OCI_BindString( pStatement, (const otext*)(':117'), (otext*)(送修开关核价.c_str()), 送修开关核价.size() ); + OCI_BindString( pStatement, (const otext*)(':118'), (otext*)(返修开关结案.c_str()), 返修开关结案.size() ); + OCI_BindString( pStatement, (const otext*)(':119'), (otext*)(送修开关结案.c_str()), 送修开关结案.size() ); + OCI_BindString( pStatement, (const otext*)(':120'), (otext*)(查勘员分公司名称.c_str()), 查勘员分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':121'), (otext*)(查勘员代码.c_str()), 查勘员代码.size() ); + OCI_BindString( pStatement, (const otext*)(':122'), (otext*)(查勘员名称.c_str()), 查勘员名称.size() ); + OCI_BindString( pStatement, (const otext*)(':123'), (otext*)(核价修理厂归属中支.c_str()), 核价修理厂归属中支.size() ); + OCI_BindString( pStatement, (const otext*)(':124'), (otext*)(结案修理厂归属中支.c_str()), 结案修理厂归属中支.size() ); + OCI_BindString( pStatement, (const otext*)(':125'), (otext*)(是否诉讼.c_str()), 是否诉讼.size() ); + OCI_BindString( pStatement, (const otext*)(':126'), (otext*)(座席推荐分公司代码.c_str()), 座席推荐分公司代码.size() ); + OCI_BindString( pStatement, (const otext*)(':127'), (otext*)(座席推荐分公司名称.c_str()), 座席推荐分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':128'), (otext*)(座席推荐车商名代码.c_str()), 座席推荐车商名代码.size() ); + OCI_BindString( pStatement, (const otext*)(':129'), (otext*)(座席推荐车商名称.c_str()), 座席推荐车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':130'), (otext*)(座席推荐操作类型.c_str()), 座席推荐操作类型.size() ); + OCI_BindString( pStatement, (const otext*)(':131'), (otext*)(座席推荐排名.c_str()), 座席推荐排名.size() ); + OCI_BindString( pStatement, (const otext*)(':132'), (otext*)(第一次推荐分公司代码.c_str()), 第一次推荐分公司代码.size() ); + OCI_BindString( pStatement, (const otext*)(':133'), (otext*)(第一次推荐分公司名称.c_str()), 第一次推荐分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':134'), (otext*)(第一次推荐车商代码.c_str()), 第一次推荐车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':135'), (otext*)(第一次推荐车商名称.c_str()), 第一次推荐车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':136'), (otext*)(第一次推荐工具.c_str()), 第一次推荐工具.size() ); + OCI_BindString( pStatement, (const otext*)(':137'), (otext*)(第一次推荐操作类型.c_str()), 第一次推荐操作类型.size() ); + OCI_BindString( pStatement, (const otext*)(':138'), (otext*)(第一次推荐排名其他推荐信息.c_str()), 第一次推荐排名其他推荐信息.size() ); + OCI_BindString( pStatement, (const otext*)(':139'), (otext*)(第二次推荐分公司代码.c_str()), 第二次推荐分公司代码.size() ); + OCI_BindString( pStatement, (const otext*)(':140'), (otext*)(第二次推荐分公司名称.c_str()), 第二次推荐分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':141'), (otext*)(第二次推荐车商代码.c_str()), 第二次推荐车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':142'), (otext*)(第二次推荐车商名称.c_str()), 第二次推荐车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':143'), (otext*)(第二次推荐工具.c_str()), 第二次推荐工具.size() ); + OCI_BindString( pStatement, (const otext*)(':144'), (otext*)(第二次推荐操作类型.c_str()), 第二次推荐操作类型.size() ); + OCI_BindString( pStatement, (const otext*)(':145'), (otext*)(第二次推荐排名其他推荐信息.c_str()), 第二次推荐排名其他推荐信息.size() ); + OCI_BindString( pStatement, (const otext*)(':146'), (otext*)(第三次推荐分公司代码.c_str()), 第三次推荐分公司代码.size() ); + OCI_BindString( pStatement, (const otext*)(':147'), (otext*)(第三次推荐分公司名称.c_str()), 第三次推荐分公司名称.size() ); + OCI_BindString( pStatement, (const otext*)(':148'), (otext*)(第三次推荐车商代码.c_str()), 第三次推荐车商代码.size() ); + OCI_BindString( pStatement, (const otext*)(':149'), (otext*)(第三次推荐车商名称.c_str()), 第三次推荐车商名称.size() ); + OCI_BindString( pStatement, (const otext*)(':150'), (otext*)(第三次推荐工具.c_str()), 第三次推荐工具.size() ); + OCI_BindString( pStatement, (const otext*)(':151'), (otext*)(第三次推荐操作类型.c_str()), 第三次推荐操作类型.size() ); + OCI_BindString( pStatement, (const otext*)(':152'), (otext*)(第三次推荐排名其他推荐信息.c_str()), 第三次推荐排名其他推荐信息.size() ); + OCI_BindString( pStatement, (const otext*)(':153'), (otext*)(其他推荐信息.c_str()), 其他推荐信息.size() ); + OCI_BindString( pStatement, (const otext*)(':154'), (otext*)(推荐失败具体原因.c_str()), 推荐失败具体原因.size() ); + OCI_BindString( pStatement, (const otext*)(':155'), (otext*)(是否现场报案.c_str()), 是否现场报案.size() ); + OCI_BindString( pStatement, (const otext*)(':156'), (otext*)(报案地点.c_str()), 报案地点.size() ); + OCI_BindString( pStatement, (const otext*)(':157'), (otext*)(是否在厂报案.c_str()), 是否在厂报案.size() ); + + OCI_Execute( pStatement ); + } + catch ( runtime_error & error ) + { + //rollback,停止保存 + string errorMessage = "报案号"; + + errorMessage.append( QString::fromStdWString( iter->报案号_ ).toLocal8Bit() ); + errorMessage.append( "保存失败,提示信息:" ); + errorMessage.append( error.what() ); + + OCI_Rollback( pConnection ); + OCI_ConnectionFree( pConnection ); + OCI_Cleanup(); + + throw runtime_error( errorMessage ); + } + } + + OCI_Commit( pConnection ); + OCI_ConnectionFree( pConnection ); + OCI_Cleanup(); }