⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delp011.html

📁 对于学习很有帮助
💻 HTML
字号:
<html><!-- #BeginTemplate "/Templates/fwolf001.dwt" -->
<head>
<!-- #BeginEditable "doctitle" --> 
<title>独孤之所 - 通过DELPHI实现JAVA调用ORACLE数据库数据</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!-- #EndEditable --> 
<style type="text/css">
<!--
body {  font-family: "宋体"; font-size: 9pt}
td {  font-family: "宋体"; font-size: 9pt}
a:hover {  text-decoration: underline}
a {  text-decoration: none}
input {  font-family: "宋体"; font-size: 9pt}
select {  font-family: "宋体"; font-size: 9pt}
-->
</style>
</head>


<body>
<!-- #BeginEditable "2%C7%F8" --> <!-- #EndEditable -->
<table width="584" border="0" align="center" cellspacing="1">
  <tr> 
    <td width="582"> <font color="#FF3333"> 
      <div align="center"><!-- #BeginEditable "%B1%EA%CC%E2" --> <!-- #EndEditable --></div>
      </font> </td>
  </tr>
  <tr> 
    <td width="582"> 
      <div align="center"><!-- #BeginEditable "%D7%F7%D5%DF" --><!-- #EndEditable --></div>
    </td>
  </tr>
  <tr> 
    <td width="582"><!-- #BeginEditable "%CE%C4%B1%BE%C7%F8" --><center><font color="#0000c0"><font color="#FF3333">通过DELPHI实现JAVA调用ORACLE数据库数据</font><br>
        </font>大庆采油六厂采油工艺研究所 <br>
        王兵 
      </center>
      <p><font color="#ffffff">----</font> 在开发WWW网络浏览软件中,时常要用到JAVA画一些生产管理图形,而且大量的图形数据存于网络数据库ORACLE中,现在常用的方法是使用JDBC来实现对数据库的操作,但是,如果手头没有它驱动程序,则就无法对数据库进行操作。其实,我们可以使用DELPHI开发JAVA的ORACLE数据接口软件,就具体实现方法简述如下。  
      <p><font color="#ffffff">----</font> <b>一、系统设置:</b>  
      <p><font color="#ffffff">----</font> 1. 用SQL NET 设置ORACLE数据库所在服务器的IP地址别名,这里假设名字是oracle1;  
      <p><font color="#ffffff">----</font> 2. 建立ORACLE ODBC数据源;  
      <p><font color="#ffffff">----</font> 进入控制面板的ODBC数据源,然后点击Systen DSN,再点击Add按钮选择Microsoft  
        ODBC Driver Oracle,在Data Source Name框中输入数据源名(test),在User Name框中输入ORACLE数据用户名(假设为user1)最后在Connect  
        String框中输入在SQL NET中建立的ORACLE数据库别名oracle1;  
      <p><font color="#ffffff">----</font> 建立好以上两步后,则DELPHI的BDE Administrator中自动生成一个test数据接口,如下图:  
      <p><font color="#ffffff">----</font> <b>二、用DELPHI开发读取ORACLE数据库数据的CGI 程序</b>  
      <p><font color="#ffffff">----</font> 进入DELPHI编程环境,去掉FORM页及其它控件,然后输入以下程序。  
      <pre>
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&gt;0 then
            write(ss*100)
          else
            write('0.0');
          write(',');
          val(Table1.Fields[3].asstring,ss,code);
          if ss &gt;0 then
            write(ss*100)
          else
            write('0.0');
        end;
       table1.next
      end;
    finally
    table1.close;
    table1.free;
end;
end.
</pre> 
      <font color="#ffffff">----</font> 把以上程序编译后拷入服务器的CGI目录。  
      <p><font color="#ffffff">----</font> <b>三、JAVA部分程序</b>  
      <pre>

//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==&quot;取数据&quot;)
  return test_xx(&quot;http://10.65.76.64/scripts/testcgi.exe?&quot;+ 
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(&quot;无数据可读!!!&quot;);
  	   status_field.setText(&quot;无数据可读!!!&quot;);
       mcv.repaint();//画布刷新
	   return true;
	  }
	 status_field.setText(&quot;取x,y数据...&quot;);
      if ((inputline=is.readLine())==null)
      {mcv.error=new String(&quot;无数据可读!!!&quot;);
       mcv.repaint();//画布刷新
	   return true;
	  }
      mcv.bktx=new String[10];
      mcv.bkty=new String[10];
      mcv.bktjh=new String[10];

     status_field.setText(&quot;取图形数据...&quot;);
      js=1;//计井数
      for (i=0;i&lt; 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(&quot;bktx[&quot;+
String.valueOf(js)+&quot;]&quot;+mcv.bkty[js]);
       js=js+1;
      }

      is.close();
      status_field.setText(&quot;OK1&quot;);
      mcv.repaint();
	 }catch(MalformedURLException me)
{System.err.println(&quot;MalformedURLException: &quot;+me);}
	 catch(IOException ioe){
	 System.err.println(&quot;IOException: &quot;+ioe);
	  }catch(NumberFormatException e)
	   {if(mcv.error==null)
         mcv.error=new String(&quot;数据格式出错B!!!&quot;+e);
        status_field.setText(mcv.error);
        mcv.repaint();
	   }
   status_field.setText(&quot;数据读完!!!&quot;);
   return true;
   
  }
}
。。。。。。。。。。。。。
。。。。。。。。。。。。


</pre> 
      <font color="#ffffff">----</font> <b>四、最后在自己的起始页HTML文件中加入如下程序段就行了。</b>  
      <pre>

&lt; !test.html 1999/11/30 &gt;
&lt; HTML &gt;
&lt; HEAD &gt;
。。。。。。
。。。。。。
&lt; BODY &gt;
。。。。。。
&lt; APPLET CODE=&quot;test.class&quot; WIDTH=200 HEIGHT=40 &gt;&lt; /APPLET &gt;
。。。。。。
&lt; /BODY &gt;
。。。。。。
。。。。。。
&lt; /HTML &gt;
</pre> 
      <font color="#ffffff">----</font> 以上程序在IBM 330 Server上调试通过, 开发环境Visual J++  
      6.0。 <!-- #EndEditable --></td> 
  </tr> 
  <tr> 
    <td width="582"><!-- #BeginEditable "%B1%B8%D7%A2" --><!-- #EndEditable --></td> 
  </tr> 
</table> 
<br> 
<p align="center">&nbsp; </p> 
</body> 
<!-- #EndTemplate --></html> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -