当前位置: 代码迷 >> PB >> 程序运行不出来,请前辈帮小弟我看看
  详细解决方案

程序运行不出来,请前辈帮小弟我看看

热度:170   发布时间:2016-04-29 09:23:44.0
程序运行不出来,请前辈帮我看看
在一个窗口中声明实例变量:
transaction itrans_source,itrans_destination
u_user_pipe_object pipe
窗口中的open事件代码如下:
dw_destination.settransobject(sqlca)
dw_pipe_error.settransobject(sqlca)
itrans_source=create transaction
itrans_destination=create transaction

itrans_source.dbms=profilestring("xtexam.ini","profile pb90","dbms","")
itrans_source.database=profilestring("xtexam.ini","profile pb90","database","")
itrans_source.logid=profilestring("xtexam.ini","profile pb90","logid","")
itrans_source.logpass=profilestring("xtexam.ini","profile pb90","logpass","")
itrans_source.servername=profilestring("xtexam.ini","profile pb90","servername","")
itrans_source.lock=profilestring("xtexam.ini","profile pb90","lock","")
itrans_source.userid=profilestring("xtexam.ini","profile pb90","userid","")
itrans_source.dbpass=profilestring("xtexam.ini","profile pb90","databasepassword","")
itrans_source.dbparm=profilestring("xtexam.ini","profile pb90","dbparm","")

connect using itrans_source;

itrans_destination.dbms=profilestring("pb.ini","Profile EAS Demo DB V9","dbms","")
itrans_destination.database=profilestring("pb.ini","Profile EAS Demo DB V9","database","")
itrans_destination.logid=profilestring("pb.ini","Profile EAS Demo DB V9","logid","")
itrans_destination.logpass=profilestring("pb.ini","Profile EAS Demo DB V9","logpass","")
itrans_destination.servername=profilestring("pb.ini","Profile EAS Demo DB V9","servername","")
itrans_destination.lock=profilestring("pb.ini","Profile EAS Demo DB V9","lock","")
itrans_destination.userid=profilestring("pb.ini","Profile EAS Demo DB V9","userid","")
itrans_destination.dbpass=profilestring("pb.ini","Profile EAS Demo DB V9","databasepassword","")
itrans_destination.dbparm=profilestring("pb.ini","Profile EAS Demo DB V9","dbparm","")

connect using itrans_destination;

//建立管道对象
pipe=create u_user_pipe_object

pipe.pipe_status_read=status_read
pipe.pipe_status_written=status_written
pipe.pipe_status_error=status_error

dw_destination.settransobject(itrans_destination)
dw_destination.retrieve()

(其中dw_destination和dw_pipe_error是窗口中的两个数据窗口,dw_destination用来显示要进行数据灌入操作的源表数据,dw_pipe_error用来显示传输过程中出错的记录的区域,u_user_pipe_object是创建的pipeline用户对象---》选standard class-->再选择pipeline。。。。)

然后执行如下代码:
integer result
pipe.dataobject="p_sql_anywhere"
result=pipe.start(itrans_source,itrans_destination,dw_pipe_error)
messagebox("ts",result)

不知道为何result=1,这样的话就是打开失败呀,问题会在哪里呢?请前辈赐教,非常感谢呀!
(p_sql_anywhere是创建好的pipeline对象,经过测试没有问题)




------解决方案--------------------
管道很久没用过了。不过你的写法好像有问题result=pipe.start(itrans_source,itrans_destination,dw_pipe_error),itrans_source是数据源,itrans_destination是目标
但是按照你的说明你是把itrans_destination当成数据源来用了。这好像写反了吧。呵呵F1看看管道的用法吧

还有就是connect using itrans_destination;connect using itrans_source; 连接事务一定要判断一下返回值。以便确认是不是真的连上了数据库。
------解决方案--------------------
result=1是成功啊

Returns 1 if it succeeds and a negative number if an error occurs. Error values are:
  相关解决方案