vfp怎么调用oracle存储过程实现数据导入
发布时间:2010-05-24 21:42:13 文章来源:www.iduyao.cn 采编人员:星星草
vfp如何调用oracle存储过程实现数据导入 系统环境:sever2003 sp2 oracle11g,客户端xp sp3、vfp9 &&vfp表f_work_reco f_work_reco_ID C(50), f_work_reco_DATE D, f_quantity N, f_Content M &&oracle表 create table work_reco(SERIAL_NO, work_reco_ID varchar(50), work_reco_DATE date, quantity number, Content varchar(2000)) &&vfp用ODBC连接odbcdrive=oracle in orahome90(连接正常) 目标:调用oracle数据库存储过程,将vfp表f_work_reco的所有记录导入oracle库。 &&oracle存储过程(禁止修改): CREATE OR REPLACE PROCEDURE fox.Save_work_Record ( p_work_reco_ID varchar2, p_work_reco_DATE date, p_quantity number, p_Content varchar2 ) Is pct number(2); v_RID varchar(50); v_ProcessRecord varchar(2000); v_BStr varchar(100); BEGIN Select Count(work_reco_ID) into pct from work_reco where work_reco_ID=p_work_reco_ID; v_ProcessRecord:='工作记录:'; v_ProcessRecord:=v_ProcessRecord||'开始时间:'||to_char(p_work_reco_DATE ,'YYYY-MM-DD')||';'; v_ProcessRecord:=v_ProcessRecord||'次数:'||p_quantity||'次'||';'; v_ProcessRecord:=v_ProcessRecord||'处理经过:'||p_Content||';'; if pct=0 then INSERT Into work_reco(SERIAL_NO,work_reco_ID,work_reco_DATE,quantity, Content) VALUES (seq_work_reco_regist.Nextval,p_work_reco_ID, p_work_reco_DATE,p_quantity,p_Content);&&SERIAL_NO由系统生成 /**进入到另一个记录**/ Select BEFORE_STR into v_BStr from SANATORIUM_CATELOG where tiaojian;&&从单位信息表获取编号前缀 v_Bstr:=v_Bstr||'-PRJL-'; AutoNo(v_Bstr,v_RID,50);&&调用一个自动编号的存储过程 commit; Save_Process_RECORD (v_RID,v_CareRecord);&&写入 commit; else Update work_reco Set work_reco_DATE=p_work_reco_DATE, Content=p_Content, BEGIN_DATE=p_BEGIN_DATE, quantity=p_quantity where work_reco_ID=p_work_reco_ID; Save_Process_RECORD (v_RID,v_CareRecord); commit; end if; end Save_work_Record------解决方案--------------------
探讨 我的思路和豆三老师的相似:从vfp表逐条读取记录,连接后逐条写入。不知道怎么实现。
------解决方案--------------------
以下是我写的部分代码,你可以换成你的表,对应的字段进行操作, Local loConnection loConnection = CreateObject("adodb.connection") With loConnection *--- Note using OLE-DB connection instead of a DSN lcConnectString = "Provider=MSDAORA.1;Password=manager;" + ; "User ID=system;Data Source=ORCL" .ConnectionString = lcConnectString .Open Endwith str_pic=CAST(FILETOSTR("r:1.jpg") as w) str_pic_len=LEN(str_pic) loCommand = CreateObject("adodb.command") With loCommand *-- Execution string from .CommandText = "Save_work_Record"&&这是里是oracle中的存储过程 .ActiveConnection = loConnection .CommandType = 4 &&这里表示执行的操作是进行存储过程调用 Endwith *--- Input Parameter loTableParameter = CreateObject("adodb.parameter") With loTableParameter .Name = "id" .Type= 3 .Direction = 1 && adParamInput .Size =5 .Value = 10 Endwith loCommand.Parameters.Append(loTableParameter) para_rq = CreateObject("adodb.parameter") WITH para_rq .Name="rq" .Type= 135 && adDBTimeStamp
友情提示: 信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
菜鸟求一句命令
我做VC的,没做过VFP,完全不懂,帮人问一句命令,谢谢各位大牛们帮忙。
“我有两张表,称为A表,B表,其中B表数据很多,我现在...
求助:实现grid修改后直接后直接更新到数据表里
各位道友,小弟有两个问题
1。如何实现在grid表格里直接修改数据;
2。修改的数据可直...
请问treeview 里面如何选择性展开其中某树枝及其获得焦点?
请问如何在treeview里面,如何实现选择性展开其中的某枝,原本是全部收起来...
vfp中treeview控件的用法
我在VFP中使用了treeview控件,我对treeview中的某一个节点的文本修改了,怎么在treeview窗口中进行就更。
...
求编排考号问题
需求是这样的,如1年级有8个班,那么考号编排规则是:第1个班的第一个学生考号为1号,第2个班的第一个学生考号为2号,以此...
大家讨论,对现有vfp6.0产品只升级为sql server数据库有必要吗?
功能保留原来 只是数据库变化
我本人觉得会丧失很多vfp 本身文...
表单中的出错,第一次遇到
VFP9.0中新建了一个表单
表单中,增加一个command1,使其width=25
然后,将此按钮,复制150个出来. (此时...
VFP 如何做一个类似word控件?
如题。
类似于电子病历的那种控件。可以像word一样的编辑文件、表格、图片等
可以直接取数据库的数...
vfp使用Msxml2.ServerXMLHTTP的乱码问题
oo = = newObject('Msxml2.ServerXMLHTTP')
oo.open('post','http://localhost/',.f.)
o...
表中定位 如下 记录 seek办不到
表结构
dlh fb
100 5
110 2
112 3
........
假如 我想查找 dl...