首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

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

2012-02-19 
程序运行不出来,请前辈帮我看看在一个窗口中声明实例变量:transaction itrans_source,itrans_destinationu

程序运行不出来,请前辈帮我看看
在一个窗口中声明实例变量:
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:



 -1 Pipe open failed
 -2 Too many columns
 -3 Table already exists
 -4 Table does not exist
 -5 Missing connection
 -6 Wrong arguments
 -7 Column mismatch
 -8 Fatal SQL error in source
 -9 Fatal SQL error in destination
-10 Maximum number of errors exceeded
-12 Bad table syntax
-13 Key required but not supplied
-15 Pipe already in progress
-16 Error in source database
-17 Error in destination database
-18 Destination database is read-only

If any argument's value is null, Start returns null.
[解决办法]
永生兄看看他写的东西,不要光看结果。呵呵,按照他说的,我觉得是把源和目标搞反了。

热点排行