首页 | 源码下载 | 编程控件 | 书籍教程 | 应用方案 | 设计素材 | 项目交易 | 开发文档 | 商业源码 | | 我的帐号
登陆我的帐号
帐 号:
密 码:
我还不是会员,需要注册!

截止2004年12月16日
本站源码总量RAR压缩为 4,206,733 KB。其中免费源码为 1,124,495 KB,商业源码为 3,082,238 KB
C/C++ 129,555 KB
Delphi 1,258,381 KB
Java 120,937 KB
.Net 36,886 KB
PowerBuilder 954,525 KB
Visual Basic 923,454 KB
ASP 259,795 KB
JSP 4,987 KB
其他 94,723 KB

本站是中国频道、中资源、时代互联顶级代理:注册国际域名70元,国内域名130元,各类ASP、PHP、JSP空间8折优惠!
本站承担各类网站制作开发及方案策划,项目经验丰富,欢迎洽谈!

网站动态
对.NET感兴趣吗?对C…
加入会员,送重量级代码!
现在下载速度大幅提高!
关于资源更新的说明
关于下载错误的原因!
源码资源网新版网站投入运…

当前位置:源码资源网首页 > 开发文档首页 > Delphi >实现Java调用Oracle数据

实现Java调用Oracle数据
人气:34 文字大小:     作者:

在开发WWW网络浏览软件中,时常要用Java画一些生产管理图形,而且大量的图形数据存于网络数据库Oracle中,现在常用的方法是使用JDBC来实现对数据库的操作,但是,如果手头没有驱动程序,则无法对数据库进行操作。其实,我们可以使用Delphi开发Java的Oracle数据接口软件。具体实现方法简述如下。


一. 系统设置


1. 用SQL NET 设置Oracle数据库所在服务器的IP地址别名,这里假设名字是oracle


2. 建立Oracle ODBC数据源;


进入控制面板的ODBC数据源,然后点击System DSN,再点击Add按钮选择MicrosoftODBC Driver Oracle,在Data Source Name框中输入数据源名 test),在User Name框中输入Oracle数据用户名 假设为user1),最后在Connect String框中输入在SQL NET中建立的Oracle数据库别名oracle1。


建立好以上两步后,则Delphi的BDE Administrator中自动生成一个test数据接口,如下图:


图1


二.用Delphi读取Oracle数据的CGI 程序


进入Delphi编程环境,去掉FORM页及其他控件,然后输入以下程序。


program testcgi;


{$apptype console}


uses


SysUtils, DBtables;


var


Table1: TTable;//用于读Oracle数据库数据


Database1: TDatabase;//用于定义Oracle别名及用户名和口令


i,ss,code:integer;


my,cc:string;


begin


writeln ‘CONTENT-TYPE: TEXT/HTML’);//CGI程序要求的数据头信息


writeln;//保留一行空格


my:=paramstr 1);//读入Java传来的信息


Table1:=TTable.Create nil);//创建Table控件


Database1:=TDatabase.Create nil);//创建Database控件


try


Database1.aliasname:=‘test’;//Oracle别名


Database1.databasename:=‘test’;


Database1.Params.Clear;


Database1.Params.add ‘USER NAME=user1’);//用户名


Database1.Params.add ‘PASSWORD=userpassword’);//口令


Database1.loginprompt:=false;


Database1.connected:=true;


Database1.open; //打开数据库通道


Table1.databasename:=‘test’;


Table1.tablename:=‘cbkt’;//Oracle表名


table1.Active := True;


Table1.open;//打开Oracle表


Table1.first;


//计算满足条件井数


i:=0;


while  not table1.eof) do


begin


if  Table1.FieldByName ‘ny’).asstring=my)


then


begin


write Table1.FieldByName ‘jh’).asstring+‘,’);


val Table1.Fields[2].asstring,ss,code);


if ss>0 then


write ss*100)


else


write ‘0.0’);


write ‘,’);


val Table1.Fields[3].asstring,ss,code);


if ss>0 then


write ss*100)


else


write ‘0.0’);


end;


table1.next


end;


finally


table1.close;


table1.free;


end;


end.


把以上程序编译后拷入服务器的CGI目录。


三.Java部分程序


//test.java


import java.awt.*;


import java.io.*;


import java.net.*;


import java.util.*;


import java.applet.*;


public class test extends Applet {


…………


………


……


//调用testcgi.exe实现读入Oracle数据


public boolean action Event evt,Object obj)


{ String s1= String)obj;


if s1=="取数据")


return test_xx "http://10.65.76.64/scripts/testcgi.exe?"+ year.getSelect


edItem ));


return true;


}


public boolean test_xx String post)


{…………


………


try{DataInputStream is;//数据输入流


URL url;//通过网传数据


url=new URL post);


URLConnection connection=url.openConnection );//打开数据流


is=new DataInputStream connection.getInput- Stream ));


String inputline;


mcv.error=null;


if  inputline=is.readLine ))==null)//无数据


{mcv.error=new String "无数据可读!!!");


status_field.setText "无数据可读!!!");


mcv.repaint );//画布刷新


return true;


}


status_field.setText "取x,y数据...");


if   inputline=is.readLine ))==null)


{mcv.error=new String "无数据可读!!!");


mcv.repaint );//画布刷新


return true;


}


mcv.bktx=new String[10];


mcv.bkty=new String[10];


mcv.bktjh=new String[10];


status_field.setText "取图形数据...");


js=1;//计井数


for  i=0;i<10;i++)


{//每行3个字段


inputline=is.readLine );


if  inputline==null) {break;}


p1=inputline.indexOf ‘,’);


p2=inputline.lastIndexOf ‘,’);


mcv.bktjh[js]=inputline.substring 0,p1);


mcv.bktx[js]=inputline.substring p1+1,p2).trim );


mcv.bkty[js]=inputline.substring p2+1).trim );


status_field.setText "bktx["+String.valueOf js)+"]"+mcv.bkty[js]);


js=js+1;


}


is.close );


status_field.setText "OK1");


mcv.repaint );


}catch MalformedURLException me){System.err.println "MalformedURLExcepti


on: "+me);}


catch IOException ioe){


System.err.println "IOException: "+ioe);


}catch NumberFormatException e)


{if mcv.error==null)


mcv.error=new String "数据格式出错B!!!"+e);


status_field.setText mcv.error);


mcv.repaint );


}


status_field.setText "数据读完!!!");


return true;


}


}


………………


……………


四、在起始页HTML文件中加入如下程序段<!test.html 1999/11/30>


<HTML>


<HEAD>


……


<BODY>


……


<APPLET CODE="test.class" WIDTH=200


HEIGHT=40></APPLET>


……


</BODY>


……


……


</HTML>


以上程序在IBM 330 Server上调试通过,开发环境Visual J++ 6.0。

 

文章出处:   发表时间:2004-12-24 16:54:27

1条数据记录,分1页显示 上一页 < [1] > 下一页
相关文章  
没有找到相关的数据!

相关评论  
 当前没有评论!
请登陆后再来发表评论!
当前位置:源码资源网首页 > 开发文档首页 > 实现Java调用Oracle数据
会员升级 | 广告服务 | 网站开发 | 联系我们 | 网站动态 | 客户反馈

CodeRes.com 保留所有权利 2004
本站所有资源仅供学习参考,版权归原作者所有,如侵犯了您的权益请与我们联系