• ベストアンサー

Web画面でのDBのアクセスについて

Web画面において、ある項目のデータを入力した後で、入力されたコードの存在チェックとしてDB(Oracle)をアクセスとしてSQL文を実行したいのですが、プログラムとして可能でしょうか? PLSQLで作成された既存のプログラムを参考にしても、画面表示のプログラムの前に、SQL文を作成して、実施したものを画面に取り込んでいるような形式にしていますが、同一プログラム内で直接コートチェックと判定を行いたいと思っていますので、詳しい方の回答をお待ちしています。

  • patak
  • お礼率20% (24/115)
  • HTML
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

こんにちはさん、xruzです。 こんな感じではダメでしょうか? サーバ側で Get で受け取りパラメータを解析しDBへ アクセスし下記のようなHTMLを生成します。 DB検索に使用する文字は1バイトの英数字のみです。 返す値は日本語でもかまいません。 [[DBの検索結果生成されるHTML例]] <html> <head> <title></title> </head> <script language="JavaScript"> <!-- function sj() { parent.dsp(document.all("val").innerText); } //--> </script> <body style="margin:3px" onLoad="sj();"> <div id="val"> 商品A // DBの検索結果 </div> </body> </html> [[入力側のHTML例]] <html> <head> <title></title> </head> <script language="JavaScript"> <!-- function chk11(o) { var ww=document.all("anc"); ww.href="object1.html?komoku="+o.name+"&key="+o.value; ww.target="obj11"; ww.click(); } function dsp(j) { if(j=="err") { document.all("dsp11").innerText="Error"; } else { document.all("dsp11").innerText=j; } } //--> </script> <body> <table border="1" width="300px"> <form method="post" name="f"> <tr align="center"> <td>商品コード <input type="text" name="txt11" size="5" onblur="chk11(this)"> </td> <td>商品名: <iframe name="obj11" style="height:0px;width:0px;" src="about:blank"> </iframe> <span id="dsp11">-</span> </td> <td width="20%"> <input type="submit" value="send"> </td></tr></form></table> <a id="anc" href="" target=""></a> </body> </html> 外していたら御免なさい、がんばってくださいね(~:~i

その他の回答 (2)

  • xruz
  • ベストアンサー率50% (72/143)
回答No.3

こんにちはpatakさん、xruzです。 ありゃりゃ、コメント無しですか? 入力フィールドのフォーカスが無くなったら、隠しフレームへサーバのデータベースからデータを読み込んでエラーチェックをしエラーでなかったら内容を表示する。 クライアント側のスクリプトはこれでOKなはずなんですが。。。。 何かお気に召さないところがあったのでしょうか? ww.href="object1.html?komoku="+o.name+"&key="+o.value; は、実際にはCGIをCallするURIを記述してくださいね。

patak
質問者

補足

すみません。 フォーカスの移動と内部チェックが思ったより大変? (Java関連の流れがいまいち理解できていなかったことと JavaとPL/SQLが混在しているものだったので、PGの追加作成に苦労していました。

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

WebサーバはアパッチですかそれともIISですかそれともそれ以外? CGIですかASPですか? CGIの場合どのような言語でしょうか(JAVA、Perl、PHPなど) JavaScriptとか使っていいのですか? 通常入力値チェックならAというページが入力フォームでBをフォームアクションで呼び出す。このBでDBに接続して入力チェックなら割りと簡単に出来ます。 なにぶんお使いの環境がわかりませんので回答は難しいです。

patak
質問者

補足

補足情報として ・CGIでjava(Javascript) です。

関連するQ&A

  • ORACLEのアクセス

    oracle10gで構築したDBをoracle9iのクライアントからアクセス可能でしょうか。(SQLを参照したりVBで作成しらプログラムからODBC/OLE形式でアクセスする)

  • DBを分析するための良いソフトを知りませんか?

    既存のDB(SQL Server,CSV形式ファイル等)を分析してグラフ作成等ができる良いソフトを教えて下さい。 市販、フリー/シェアウェアは問いませんが、出来るだけノンプログラミングで組み込めるツールを捜しています。 よろしくお願いします。

  • 既存のAccessのテーブルに空の領域を作成する

    既存のAccess2000のテーブルに空の領域を作成する プログラムを作っているのですが(下記参照)、 「データベースの形式 <ファイル名> を認識できません。(Error 3343)」の エラーが出ます。 【状況説明】 ・パスの内容、パス名、DB名はあっています。 ・編集前のDB前に戻して(テーブル内に空白データが無い状態)、  再実行してもダメでした。 ・参照設定「DAO 3.51 Object Libraly」はチェックしています。  「DAO 3.6 Object Libraly」にチェックすると、  「この名前は既にあるモジュール、プロジェクト、オブジェクト  ライブラリで使われています。」のメッセージが出て、チェック出来ません。 解決方法がありましたら、記入をお願い致します。 【作成プログラム】 'DB関連設定  Dim DBName As String(iniファイルから取得したDB名)  Dim SQL As String (SQL文領域)  Dim DB名  As DAO.Database 'データベース接続 Set DB = OpenDatabase(iniファイルから取得したパス & "\" &               DBName) '領域作成 Do While 数値 > 0 SQL名 = "" SQL名 = SQL名 & "INSERT INTO テーブル (A, B, C) " SQL名 = SQL名 & "VALUES ("", "", ""); " db.Execute (SQL) 数値 = 数値 - 1 Loop db.Close

  • 既存DBを元にDBを新規作成したいのですが…

    Windows2003Server上でSQL Server2000を使用しています。 既存のDBと全く同じ構造で同じインスタンス上に別名のDBを 新規作成したいのですが、SQL Server Enterprise Managerを 用いてこのような事は可能でしょうか? もし、SQL Server Enterprise Managerで困難なようであれば、 どのような方法で行えますでしょうか? ご教授お願い致します。 m(__)m

  • SELECT文を発行して、ACCESSより取得する方法

    既存のプログラムを元に、 以下のようなソースを作成したのですが、 取得出来ませんでした。 参照設定やパスの設定、SQL文は正しいです。 どこがマズイのでしょうか? アドバイスをお願い致します。 Dim db  As DAO.Database Dim rs  As DAO.Recordset Dim SQL As String 'データベース接続 Set db = OpenDatabase("DBのパス") 'データ検索SQL SQL = "" SQL = " SELECT文 " 'ACCESSより取得 Set rs = db.OpenRecordset(SQL) db.Close rs.Close

  • oracle 9i と SQL SERVER 2005 DBリンクにつ

    oracle 9i と SQL SERVER 2005 DBリンクについて とても困ってます。 よろしくお願いします。 仕事で、oracle 9iとSQL SERVER 2005をDBリンクさせて、oracle 9iのTableとSQL SERVER 2005のTableを結合させて、SELECT文を作成したいです。 本番環境は、DBサ―bとWebサーバは別々でとりあえずlocal開発環境を作成しています。 <確認したこと> ・global_names = Flase ・ODBCの設定はSQL SERVER 2005に接続確認しました。  →データソース名は、「SQLSRV」です。 ・inithsodbc.oraの設定    HS_FDS_CONNECT_INFO = SQLSRV    HS_FDS_TRACE_LEVEL = OFF ・LISTENER.ORAの設定(編集後再起動しました)  → (SID_DESC = (SID_NAME = HSODBC) (ORACLE_HOME = D:\oracle\Ora9IUTF) (PROGRAM = hsodbc) ・TNSNAMES.ORAの設定 HSODBC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521)) ) (CONNECT_DATA = (SID = HSODBC) ) (HS = OK) ) ・DBリンク作成(小文字を認識するため、ダブルクォーテーションで囲います)   CREATE DATABASE LINK DB_LINK_SQLSRV   CONNECT TO "ユーザ" IDENTIFIED BY "パスワード" USING 'HSODBC'; ・SELECT文   SELECT * FROM テーブル名@DB_LINK_SQLSRV; 上記の手順ですが、サービス名が解決できません。

  • オラクルDBでの不一致の検索

    ORACLE8.0.5において A-DB  code char(10); updte char(14); B-DB code char(10); A-DBとB-DBにおいてcodeが不一致のデータの抽出をする場合、 select B-DB.code from A-DB,B-DB where A-DB.code <> B-DB.code and A-DB.updte >= '20020301000000' and A-DB.updte <= '20020331235959'; 上記のようなSQL文を作成し実行したが、A-DBのcodeに対してB-DBのcodeを全部検索し、B-DBの検索分がすべて不一致になってしまいました。 SQLの考え方がまちがっているのかわからないでいるので、アドバイスをお願いいたします。

  • オラクルのPLSQLの使い方を教えて下さい!

    ☆ 始めまして、こんにちわ。 オラクルのDBを参照しながら、Insert文を作成する簡単なプログラムを作成しようと思っているのですが、そのツールにオラクルのPLSQLが良いよっとアドバイスを頂きました。 しかし、どのようにして、PLSQLを作成すれば良いかもわかりません。 初めてのツールですが、是非、チャレンジしてみようと思いますので、簡単な使い方、または、お勧めのHP等がありましたら、教えて頂けると嬉しいです。 更に、ずうずうしいですが、同じようなサンプルをお持ちでしたら、ソースを見せて頂けると本当に助かります。 どんなサンプルでもOKです。 どうぞ、宜しくお願い致します。 ☆

  • DBスペシャリストとは

    皆さんが考えるDBスペシャリスト像を教えてください。 ちなみに、自分の中のDBスペシャリストとは、 (1)副問合せ、リンクを使用したSQL文を問題無く作成できる。 (2)スピードを意識したSQL文を作成できる。 (3)正規化により、性能、見易さを意識したテーブル設計ができる。 (4)ネットワークの知識が強い。 (5)(例えば)Oracleのメンテナンスができる。 というものです。 上記の他にこんな事もあるのではないか。という意見があれば教えて下さい。 ※否定的な意見はご遠慮願います。

  • フォームの移動について

    Perl-CGIとOracleを利用して作成してます。 一覧画面から入力画面にとんで、入力画面からデータを受け取り、それをSQLでDBに挿入するときにエラーがなければ一覧画面に戻る。 このような処理にしたいのですが・・・ SQLとエラー判定は入力画面から入力ボタンを押したら判定.cgiにとんで行っています。 入力画面からすぐに一覧で処理をさせてしまえばいいのですが、そうすると一覧画面のコードがとても長くなってしまうため、できれば避けたいのです・・・ 大変わかりずらい説明なのですが、ポイントだけでもよいのでよろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう