// 縈彰權琯� � 菴僮 熱瑤粵磋� 獵頡鞭�
void InsertFoundedChainFromMemoryToDB(OCI_Connection *p_cn) // 亭蠍 滓瘩灘 獵頡鞭� 愿 鋒��錚 � �
{
OraInt idlh;
OraInt idlb;
OraInt idob;
OraInt idli;
OraInt rown;
OraInt startObjId;
OraInt calcROW; // 蜻鞅雛羲隆 溜菴隋粵磋� 羲曉�
OraInt calcBlock; // 蜻鞅雛羲隆 萄蝌蝴
time_t BeginInsertTime;
double kd;
double speedlm; // 溫� 擋罹雛錶 縈褒褓錚
OCI_Date *head_data_end=OCI_DateCreate(p_cn);
OraInt EndObjId;
char temp[60];
// 螂��隋粵徹 � 鋒曇慚� 褒甦餃順� 頑頜褓蝴
// 鋼餃
OCI_Statement *stb = OCI_StatementCreate(p_cn);
OCI_Prepare(stb, "insert into links_body_tmp (IDLB, IDLH, ROWN, IDOB, IDLI) values ( sec_links_body.nextval, :val_idlh, :val_rown, :val_idob, :val_idli )");
OCI_BindInt(stb, ":val_idlh", &idlh);
OCI_BindInt(stb, ":val_rown", &rown);
OCI_BindInt(stb, ":val_idob", &idob);
OCI_BindInt(stb, ":val_idli", &idli);
// 繭靠�
OCI_Statement *sth;
sth = OCI_StatementCreate(p_cn);
OCI_Prepare (sth, "insert into links_head_tmp (IDLH, DATA_FIND, MEMO, IDOB_START, IDLJ, RES, DATA_END, IDOB_STOP, KD) values ( :val_int, :val_date, :val_str, :val_idob, :val_idlj, 1, :val_edate, :val_idobs, :val_kd )");
OCI_BindInt (sth, ":val_int" , &idlh);
OCI_BindDate (sth, ":val_date" , g_date);
osprintf(temp, 30, "Test 2");
OCI_BindString(sth, ":val_str" , temp, 30);
OCI_BindInt (sth, ":val_idob" , &startObjId);
OCI_BindInt (sth, ":val_idlj" , &jobID);
OCI_BindDate (sth, ":val_edate", head_data_end);
OCI_BindInt (sth, ":val_idobs", &EndObjId);
OCI_BindDouble(sth, ":val_kd" , &kd);
// 頡骯雛璃� 縊蒲粵築 溫� 繭靠�
OCI_Statement *sts;
sts = OCI_StatementCreate(p_cn);
OCI_Prepare(sts, "select sec_links_head.nextval from dual");
OCI_Resultset *rs;
calcROW=0; calcBlock=0;
BeginInsertTime=time(NULL); // 熱闐鼻熱� 頡飾甕� 頑頡憂熱粳
// 甕蓊 頡 獵頡鞭番
for(OraInt n = 0; n < foundedChainsNum; n++)
{
if(exitFlag == 1) // 俠瘍畫� Ctrl+C
{
printf("\nCtrl+C pressed. Process terminated.\n");
ClearMemory();
exit(1);
}
// 頡骯闐粳 縊蒲粵�
OCI_Execute(sts);
rs = OCI_GetResultset(sts);
while(OCI_FetchNext(rs)) idlh = OCI_GetInt(rs,1);
// 廈錙閎� 滓瘩灘 � 溜菴隋粵斡 繭靠�
startObjId = foundedChains[n].head.start_idob;
EndObjId = foundedChains[n].body[foundedChains[n].head.depth].idob;
head_data_end=foundedChains[n].head.data_end;
kd=foundedChains[n].head.kd;
OCI_Execute(sth);
// 甕蓊 頡 獵頡鞭�
for(int i = 0; i <= foundedChains[n].head.depth; i++)
{
// 廈錙閎� 滓瘩灘 � 溜菴隋粵斡 繭靠�
idob = foundedChains[n].body[i].idob;
idli = foundedChains[n].body[i].idli;
rown = foundedChains[n].body[i].rown;
OCI_Execute(stb);
// 順隆� 頜蝶擇罹� 溜菴隋粵�� � 菴僮
if(calcROW++ > 1000)
{
calcBlock++;calcROW=0;
//OCI_Commit(p_cn); // � 縝詼雒璃� 縈褒褓錚 獗 溜菴隋�綏 - 熱螂曉� 鋼��粳 10%
if ( (time(NULL)-BeginInsertTime)>1)
{
speedlm=(double)calcBlock/(double)(time(NULL)-BeginInsertTime);
printf("%d Kilo Row inserted. Speed: %2.2f k.insert/s \r", calcBlock, speedlm);
}
else
{ printf("%d Kilo Row inserted \r",calcBlock ); }
}
}// 甕蓊 頡 獵頡鞭�
} // 甕蓊 頡 獵頡鞭番
OCI_Commit(p_cn);
OCI_ReleaseResultsets(sts);
OCI_StatementFree(stb);
OCI_StatementFree(sth);
OCI_StatementFree(sts);
printf("\n\n");
}
没有合适的资源?快使用搜索试试~ 我知道了~
insert-data-from-C-in-an-Oracle-database.rar_oracle
共2个文件
readme:1个
c:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 127 浏览量
2022-09-19
22:10:07
上传
评论
收藏 2KB RAR 举报
温馨提示
Example of correct code quickly insert data C in an Oracle .
资源推荐
资源详情
资源评论
收起资源包目录
insert-data-from-C-in-an-Oracle-database.rar (2个子文件)
examlpe_c_function.c 4KB
Readme 994B
共 2 条
- 1
资源评论
周楷雯
- 粉丝: 79
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功