• 締切済み

AS/400でSQLコマンドを使用可にする方法

タイトル通りなのですが、AS/400上でSTRSQLよりSQLモードにするには、どういった方法でできるようになりますか? ご存知の方教えてください。よろしくお願いします。

みんなの回答

  • celtis
  • ベストアンサー率70% (2271/3210)
回答No.1

ここにそれらしき情報がありますね。 http://www.easymarketplace.de/strsql-sqlutil.php

ru-ru-1211
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • AccessでSQL結果を直接csvに書き出すには?

    Access2003,WinXP お世話になります。 自作のSQLを書いて、結果をTransferTextで手軽にCSVにできないかと考えてこんなのを書いてました。 Dim strSql AS String Dim strPath AS String strSql = 自作SQL文 strPath = c:\test.csv Docmd.TransferText acExportDelim, , strSql, strPath, True しかし、TransferTextでは「テーブル」か「クエリ」名を直接書くように指示してあり、これだと動かない?んでしょうか。 SQLは300個くらい出力する必要があるため(クエリ300個作れば解決するのですが・・・)上のようなコードをループして動かしたいのですが、何か他の簡単な出力方法があるのでしょうか。 よろしくお願いいたします。

  • SQL Server のレプリケーション機能の使用方法

    お世話になります、タイトルのとおりなのですが SQL Server のレプリケーション機能の設定方法 について記述があるサイト等ご存知ありませんでしょうか? よろしくお願いします。

  • 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】)ダブルクォーテーションの外に書いてよいのでしょうか?

  • [ACCESS/VBA]動的にSQL文をテーブルから抽出する方法?

    ボロボロです。知恵が足りずとても困っています。どなたか教えてください。 テーブル「T_SQL」の各レコードに、 クエリのSQL文(フィールド名=「strSQL」)と クエリ名(フィールド名=「QName」)と 通しNo.(フィールド名=「No」) をデータとして入力し、アクション等に応じて、「T_SQL」から 抽出したSQL文を、 マクロの「プロシージャの実行」の プロシージャ名 SetSQL("クエリー1",FindSQL(No)) により クエリ「クエリー1」に代入したいのです。 現在以下の通りに作りました。 'データベース定義 Public db As Database 'レコードセット定義 Public rs As Recordset Public Function SetSQL(QName As String, strSQL As String) CurrentDb.QueryDefs("QName").SQL = strSQL End Function Public Function FindSQL(No As String) Set db = CurrentDb() Set rs = db.OpenRecordset("T_SQL", dbopendynaset) strcriteria = "[No]='" & No & "'" rs.FindFirst strcriteria FindSQL = rs!strSQL rs.Close db.Close End Function これで実行すると、 「コンパイルエラー メソッドまたはデータメンバが 見つかりません」 というエラーメッセージが出ます。 ちょこちょこいろんなところを修正してみても、 このメッセージだけでなく他にもいろんな エラーメッセージが出ます。 冒頭に書いたような機能を可能にするには、 どのように記述すればよいのでしょうか?? ほんとにほんとに困っています。どなたか助けてください。

  • VB6でのSQL実行について

    VB6でのSQL実行について VB6でのSQL実行について困っています。 SQL文を作成し、ダイナセットで実行している最中にも 再度別のSQL文をダイナセットで実行することは可能なのでしょうか? 言語はVB6.0、DBはOracle9iを使用しています。 イメージ的にはこんな使い方をしたいです。 dim lngRecordRow1 as long 'レコード数1 dim lngRecordRow2 as long 'レコード数2 dim OraDynaset1 As OraDynaset dim OraDynaset2 As OraDynaset dim strSQL as string 'SQL文 dim lngCnt1 as long 'ループカウンタ1 dim lngCnt2 as long 'ループカウンタ2 strSQL= ---SQL文作成1回目--- Set OraDynaset1 = OraDatabase.CreateDynaset(strSQL, ORADYN_READONLY) 'SQL文実行1回目 lngRecordRow1 = OraDynaset1.RecordCount for lngCnt1 = 1 to lngRecordRow1 '--- 処理 --- strSQL= ---SQL文作成2回目--- Set OraDynaset2 = OraDatabase.CreateDynaset(strSQL, ORADYN_READONLY) 'SQL文実行2回目 lngRecordRow2 = OraDynaset2.RecordCount for lngCnt2 = 1 to lngRecordRow2 '--- 処理 --- next lngCnt2 next lngCnt1 1回目で取得したSQL実行結果を行単位でループをまわしつつ、1回目で取得したレコードの結果を条件に使用して別のSQL文を作成し、ループをまわしている最中に実行したいです。 その際、2回目のSQLの結果が2レコード以上の場合、さらにループをまわして条件判別をしたいです。 かなり困っています。回答待ってます。

  • ODBC使用時の正しい記述方法

    データベース初心者です。 ODBCの正しい記述方法についてご教示願います。 以下のソースでデータベース間のテーブルコピーを試したところができるものとできないものがあります。 テーブルはすべて作成済み、Windows認証です。  環境 OS:WidowsXp、Access2003、Excel2007、SQL ServerExpress2008 (1)SQL Server ⇒ SQL Server  記述の方法に問題があるようなメッセージです。  ドライバやテーブルの指定が同様な記述で(4)や(5)がOKなのに(1)ではNGです。DRIVER指定ができないようです。 エラーメッセージ "[Microsoft][ODBC SQL Server Driver][SQL Server]オブジェクト名 'odbc;DRIVER=SQL Server;Server=Server1\\SQLEXPRESS2;Database=TEST1;Integrated Security=SSPI;.TABLE1' が無効です。" (2)は仕様上出来ないのでしょうか? エラーメッセージ "[Microsoft][ODBC Microsoft Access Driver] ODBC を使用して、外部 Microsoft Jet データベース エンジンのテーブルや組み込み可能な ISAM データベースのテーブルのインポート、エクスポート、またはリンクを行うことはできません。" 実用上はOLEを使用しているので問題はありませんが、向学のためによろしくお願いします。 /////////////////////////// ソース ///////////////////////////////////// (1)SQL Server ⇒ SQL Server 動作NG Sub sqlsvr2sqlsvr() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={SQL Server};Server=Server1\SQLEXPRESS1;Database=TEST1" strSQL = "INSERT INTO [odbc;DRIVER=SQL Server;" & _ "Server=Server1\SQLEXPRESS2;Database=TEST1;" & _ "Integrated Security=SSPI;].TABLE1 " & _ "SELECT * FROM TABLE1" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (2)Excel ⇒ Access 動作NG Sub Access2Excel() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\TEST1.MDB" strSQL = "INSERT INTO [DRIVER={Microsoft Excel Driver (*.xls)};" & _ "DBQ=C:\TestBook.xls;ReadOnly=False].[Sheet1$] " & _ "SELECT * FROM TABLE1" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (3)Excel ⇒ Excel 動作OK Sub Excel2Excel() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "odbc;DRIVER={Microsoft Excel Driver (*.xls)};DBQ=C:\TestBook.xls;ReadOnly=False;" strSQL = "INSERT INTO [C:\TestBook2.xls].[Sheet1$]" & _ "SELECT * FROM [Sheet1$]" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (4)Access ⇒ SQL Server 動作OK Sub access2sqlsvr() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\TEST0.MDB" strSQL = "INSERT INTO [odbc;DRIVER=SQL Server;" & _ "Server=Server1\SQLEXPRESS1;Database=TEST1;" & _ "Integrated Security=SSPI;].TABLE1 " & _ "SELECT * FROM TABLE1" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (5)Excel ⇒ SQL Server 動作OK Sub excel2sqlsvr() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=C:\TestBook.xls;ReadOnly=False;" strSQL = "INSERT INTO [odbc;DRIVER=SQL Server;" & _ "Server=Server1\SQLEXPRESS1;Database=TEST1;" & _ "Integrated Security=SSPI;].TABLE1 " & _ "SELECT * FROM [Sheet1$]" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (6)Access ⇒ Access 動作OK Sub Access2Access() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\TEST0.MDB" strSQL = "INSERT INTO T_写真台帳1 SELECT * FROM [C:TEST1.MDB].T_写真台帳" cn.Execute strSQL cn.Close Set cn = Nothing End Sub

  • SQLの文章 羅列について

    SQLの文章を変更しようとしています。 更新対象の項目が増えてくるので1行の文章を分けたいのですが strSQL3 = "UPDATE LINK SET A ='" & a & "',B ='" & b & "' WHERE 工番=" & CStr(j) & ";" の1行の文章を 下記の通りしたのですが できませんでした。何故でしょうか? strSQL3 = "UPDATE TPK_LINK SET" strSQL3 = strSQL3 & "A ='" & a & "'" strSQL3 = strSQL3 & ",B ='" & b & "'" strSQL3 = strSQL3 & "WHERE 工番=" & CStr(j) & ";"

  • SQLデータベースへのアクセスがわからない

    VB.Netを始めて一ヶ月。 DB接続は出来たもののREADのみで、更新処理が全く出来ません。 何が悪いのか、どうすればいいのかもわからず途方に暮れています。 どなたかお知恵をお貸し下さい。 下記にプログラムを記載します。 ■◇■ 共通定数 ■◇■ Public gstrSysd As String = "DSN=DbName;UID=UserId;PWD=Password" 一部名称を変更しています。 ■◇■ Readプログラム ■◇■ Public Sub psubDBReadK(ByVal strSql As String, Optional ByVal intDcnt As Integer = 0)   Dim godbSysd As New OdbcConnection(gstrSysd)   godbSysd.Open()   Dim odbCom As New OdbcCommand(strSql, godbSysd)   Dim odbRead As OdbcDataReader = odbCom.ExecuteReader(CommandBehavior.CloseConnection)   Dim intLcnt As Integer   Erase gtblDb   glngDcnt = 0   While odbRead.Read()     glngDcnt = glngDcnt + 1     ReDim Preserve gtblDb(intDcnt, glngDcnt)     For intLcnt = 1 To intDcnt       If IsDBNull(odbRead.GetValue(intLcnt - 1)) Then         gtblDb(intLcnt, glngDcnt) = ""       Else         gtblDb(intLcnt, glngDcnt) = Trim(odbRead.GetString(intLcnt - 1))       End If     Next intLcnt   End While   odbRead.Close()   godbSysd.Close() End Sub 上記モジュールをSQL文を作成してCallします。   strSql = ""   strSql = strSql & "SELECT Mm, Wd, Dd, Nm "   strSql = strSql & " FROM TableName "   strSql = strSql & "WHERE Fd <= '" & lngYear & "' "   strSql = strSql & " AND Ed >= '" & lngYear & "' "   strSql = strSql & "ORDER BY Mm, Wd, Dd "   Call psubDBReadK(strSql, 4) ここまでは動作確認も出来ましたが、問題はWRITE処理です。 ■◇■ WRITEプログラム ■◇■ Public Sub psubDbWriteK(ByVal strSql As String)   Dim odbSysd As New OdbcConnection(gstrSysd)   odbSysd.Open()   Dim odbCom As New OdbcCommand(strSql, odbSysd)   odbCom.Connection.Open()   odbCom.ExecuteNonQuery()   odbSysd.Close() End Sub 上記コードだとコネクションのオープン時に『既に開かれています』のエラーとなりました。 同コードを削除するとエグゼキュートノンクエリーにて『システムエラー』となり、やはり上手く動作していないようです。 同様にOdbcDataAdapterを使う方法も試してみましたが上手くいきませんでした。 DBアクセスの方法はいくつかあると思いますが、SELECT句と同様の方法でINSERT、UPDATEも行いたいのですが、どうすれば良いのでしょうか? 環境 OS WIN2K VS.Net Professional(VB) DB SqlServer2K

  • EXCEL2003 VBAでのSQL文について

    「'#'付近に不適切な構文があります。」 というエラーが出ます。 ソースは以下の通りです。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set cn = CreateObject("ADODB.Connection") cn.CommandTimeout = 0 cn.Open SRC_SQL Dim dateTarget_s As Date Dim dateTarget_e As Date dateTarget_s = CDate(Format$(dateTarget, "yyyy/mm/dd")) dateTarget_e = CDate(Format$(DateAdd("m", 1, dateTarget), "yyyy/mm/dd")) '指定年月(全て) strSql = "SELECT SUM(現金金額), SUM(クレジット金額), SUM(割引金額), SUM(出庫台数)" strSql = strSql & " FROM " & TBL_TEST strSql = strSql & " WHERE 物件NO = '" & p_strBukNo & "'" strSql = strSql & " AND 日付 >= #" & dateTarget_s & "#" strSql = strSql & " AND 日付 < #" & dateTarget_e & "#" Set rs = CreateObject("ADODB.Recordset") rs.Open strSql, cn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - どこがおかしいでしょうか? イミディエイトウィンドで見る限りは、私には原因がわかりませんでした。 よろしくお願いします。

  • Active Report と SQL

    Active Reportで作成したRPXファイルにSQLのデータを表示させる手順について質問させて頂きます。調べてみて、ASPファイルに strSQL = "SELECT *, '表示' AS LABEL" の様に書けばいいことはわかったのですが、詳しくわかりません。 'LABEL'の部分が、RPXファイルの1つのオブジェクト(テキストフィールドなど)に対応していると今のところ考えているのですが、お詳しい方ご助言をお願い致します。