- 締切済み
SQL文の関数らしいのですが、意味を正確に調べたいとき。
Visual Basic で組んだ業務ソフトのソースを見ているところなのですが…。データベースは SQL Serverを使っています。その中のコードとして SQL = "SELECT * FROM MPGSUB " _ & "WHERE 端末ID = " & Conv_DBValue(Client_ID, DB_String) というのがあります。これは、《"端末ID"列から、DB_Stringの型に変換した値をClient_ID という列名にして取得する》ということで良いのでしょうか。 Conv_DBValue やDB_String は、手元の辞典にも載っていないし、ネットで検索しても解説しているところがありません。このようなときは、プログラムで参照すべき他のモジュールが足りないと考えた方が良いのでしょうか。 ときどき調べがつかない関数があるので困ってしまうので、そのような時はどうすべきか教授願いたいです。(^^;
- kistune
- お礼率53% (98/182)
- SQL Server
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
みんなの回答
文字列をよく見てください。SQLの関数であれば、VBにおいては単なる文字列であり、ダブルクォートの中にあるはずです。これは、Conv_DBValue関数が「&」で繋がっていますよね。ということは、「VBで定義されたConv_DBValue」関数の結果を、SQL文の文字列に繋いでいるだけです。 関数はVBのソースのどこかにあるはずです。
- ssssssssss
- ベストアンサー率23% (24/103)
vbでConv_DBValueを右クリック→定義を選択してもそのファンクションにとびませんか?
- kagep
- ベストアンサー率23% (171/721)
>《"端末ID"列から、DB_Stringの型に変換した値をClient_ID という列名にして取得する》ということで良いのでしょうか。 いえ、違うと思います。 Conv_DBValue(Client_ID, DB_String) というのは、VBの関数(プロジージャ)では? Client_IDとDB_Stringという変数に格納されている値を引数にして、 Conv_DBValueの戻り値が、MPGSUBテーブルの端末IDフィールドの値と一致するものを検索しているのでしょう。 列名はテーブルの列名のままかと思います。 にしても、この変数名といい関数名といい、 ネーミングルールなんてあったものぢゃないですねぇ。 品質も「それなり」ではないかと・・・。 SQL文の*使用も、やめた方がいいと思います。 って、解析元のソースなので、既存システムには関係ない、ということなら安心ですけどね。
関連するQ&A
- SQL文で
SQL2000serverで 異なる2つのデーターベースの中にある 別のテーブルの情報を SQL文を使って、抽出する事は出来るのでしょうか? たとえば下記のように「DB-A」「DB-B」と言った 二つのDBの中のそれぞれのテーブルのIDフィールドで リレーションを取ってDB-AのTablA1のFldAの 値(AA)からDB-BのTablB1のFldBの値(あ)を 抽出することはSQL文で可能なのでしょうか? DB-A DB-B TablA1 TableB1 ID FldA ID FldB 1 AA 1 あ 2 BB 2 い 3 CC 3 う 4 DD 4 え
- ベストアンサー
- SQL Server
- sql文のヵウント関数について
sql文のcountを使い、humanテーブルのレコード件数を取得し出力したいのですが、 Object of class SQLite3Result could not be converted to string in のエラーが出て困っています。 (1)humanテーブルのレコード件数を表示する方法を教えてください。(sql文はうまく動いているのが確認できているので、表示する方法を教えていただきたいです。データベースの接続も正常です。) (2)sqlの出力って配列のみなのでしょうか? <?php // 変数の初期化 $db = null; $query=null; $con =null; $db = new SQLite3("test.db"); $res = $db->query ($sql); // データの取得 $query = "SELECT count (id) from human"; //クエリを実行 $con = $db->query($query); //データの件数を表示する print $con; ?>
- ベストアンサー
- PHP
- VBSの中で書くSQL文の記述方法
よろしくお願いします。 select * from db1 into id,password,date,name where db1_id = **** and db1_password = **** and db1_date = 99999999; (db1_id,db1_password,db1_dateがプライマリキー) db1という表からプライマリキーに該当したデータを取り出し、 変数に格納したいと思っています。 このSQL文をASPのVBSの中で実現する方法を教えてください。 <% Dim Conn,SQL,RS Dim id Dim password Dim date Dim name db1=server.mappath("db1.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db1 Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from db1" INTO = "into id,password,date,name" WHERE = "where db1_id = **** and db1_password = **** _ and db1_date = 99999999" SQL = SQL & INTO & WHERE & ";" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3 %> これでうまくいくかな~と思ったのですが・・・。
- 締切済み
- Microsoft ASP
- SQLで取得したフィールドをSQL文として利用
お世話になっております。 MYSQLで sql_id (int PK) sql_data (text) のようなテーブル(sql_db)を持ち select sql_id from where (sql_data をsqlとして実行した結果 ) > 200 のように、フィールドから取得した値をSQLとして実行したりする方法はございますでしょうか。 ご教授よろしくお願いいたします。
- 締切済み
- MySQL
- テーブルのクリアについて
テーブルの枠に一行ごとに各クリアボタンつけてます。 そのクリアボタンを押して、対応する行の内容をリセットしたいです。 下のソースだとwhere 条件つけてないので、もちろん全行リセットされてしまいます。が + " where member_id=" + member_id;という条件つけたら、リセットされませんでした・・ 詳しい方いらしゃったら、ご教授ください。 よろしくお願いします。 String comment = ""; String attendance ="0"; String member_id = request.getParameter("member_id"); // MyDBAccess のインスタンスを生成する MyDBAccess db = new MyDBAccess(); // データベースへのアクセス db.open(); // データベース更新用のSQL文を作成 String sql = "update shainlist set comment='" + comment + "', attendance=" + attendance; // SQL文を実行 db.execute(sql); // データベースへのコネクションを閉じる db.close(); // 元のページへリダイレクト response.sendRedirect("jsptest.jsp");
- 締切済み
- Java
- SQL文の質問
DBの検索で AAAというデータベースで user_id,log_no,status と項目があって、 user_idとlog_noでプライマリーキーで 検索する条件が 同一user_idが複数件ある場合のみ、 log_noが0のuser_idだけ検索したいという SQL文を教えてください。 たとえば、DBには user_id log_no status 'aaaa1' 0 0 'aaaa2' 0 0 'aaaa2' 1 0 'aaaa3' 0 0 'aaaa3' 1 0 とはいっていたら、 'aaaa2' 0 0 'aaaa3' 0 0 の2件だけSELECTできるSQL文は可能でしょうか? すみません。 どなたか宜しくお願いします。
- ベストアンサー
- その他(データベース)
- ユーザー定義関数の意味
下記のユーザー定義関数の意味を自分なりに解釈しました。 下記の意味で合っていますか? // $dbと$user_idを受け取ったget_user関数は、$dbと$sqlを受け取ったユーザーの情報を取り出す function get_user($db, $user_id){ // データベースに接続してusersテーブルからuser_idが$user_idに一致するuser_id、name、password、typeを1行だけ表示する $sql = " SELECT user_id, name, password, type FROM users WHERE user_id = {$user_id} LIMIT 1 "; return fetch_query($db, $sql); } // $dbを受け取ったget_login_user関数は、変数dbと変数login_user_idを受け取ったget_user関数を返す function get_login_user($db){ // 変数login_user_idをセッションのユーザーIDと定義する $login_user_id = get_session('user_id'); return get_user($db, $login_user_id); }
- ベストアンサー
- PHP
- SQL文の作成について
前の質問が解決してないのに、すいません。 SQL文を作成して、関数に投げると配列で 実行結果が返ってくるらしいのですが。 SQL文作成時に変数をWHERE節に組み込む 記述の仕方が自信ないです。以下のような感じです。 Dim srtSql As String Dim Key_Id As String Call Key_Get(Key_Id) ’キーを取得 strSql = strSql & ”Select Tb*” strSql = srtSql & ” From Tb ” strSql = strSql & ”Where ” srtSql = strSql & ”Tb_Key_Id = ’” strSql = strSql & Key_id & ”’” のように(Accessだとこんな感じ【キーはSring】)ダブルクォーテーションの外に書いてよいのでしょうか?
- ベストアンサー
- SQL Server
- JAVAに書くSQL文について教えてください
Oracle内のデータを更新しようとしていますが ORA-00904というエラーが表示されます。 調べていると列名は「”」で囲ってはいけないと 書かれていたので、それでいろいろ試行錯誤してみたのですが エラーがなくなりません。 「SYAIN1」と「SYAIN2」は変数になっています。 このSQL文が機能するように、アドバイス頂けるとうれしいです。 int row_count = smt.executeUpdate(Update SYAIN_MASTER set SYAIN_NAME = SYAIN2 where SYAIN_ID SYAIN1);
- ベストアンサー
- Java
- DB2のSQL
select * from xTABLE where EMP_ID = "P001" というSQLを実行すると SQL0206N "P001" is not valid in the context where it is used. SQLSTATE=42703 のエラーが出ます。 SQLSTATEで調べても「"P001"の列がテーブルにない」ということみたいですが 列名で捉えている時点でおかしい気がします select * from xTABLE where EMP_ID = null のSQLは正常にテーブルのSELECT結果が返ってきます。 どうすればよいでしょうか?
- 締切済み
- その他(データベース)