JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--数据库--ORACLE  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
通过DELPHI实现JAVA调用ORACLE数据库数据
作者:未知     文章来源:www.jspcn.net
访问次数:427次     加入时间:2005年01月19日
大庆采油六厂采油工艺研究所
王兵
---- 在开发WWW网络浏览软件中,时常要用到JAVA画一些生产管理图形,而且大量的图形数据存于网络数据库ORACLE中,现在常用的方法是使用JDBC来实现对数据库的操作,但是,如果手头没有它驱动程序,则就无法对数据库进行操作。其实,我们可以使用DELPHI开发JAVA的ORACLE数据接口软件,就具体实现方法简述如下。

---- 一、系统设置:

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

---- 2. 建立ORACLE ODBC数据源;

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

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

---- 二、用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 编写:王兵 1999/11/30
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.getSelectedItem());
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.getInputStream());
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("MalformedURLException: "+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。 
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号