|
|
|
|
|
対象 |
MS-Access2000 |
Java一般 |
sql*plus |
PL/SQL |
コネクション取得 |
CurrentProject.Connection |
import java.sql.*;
Connection conn=DriverManager.getConnection(URL);
URLはDBの種類によって異なる文字列
例:PostgreSQL |
connect ユーザー/パスワード |
|
バインド変数 |
なし |
なし |
SQL文の中の「? 」 |
なし |
なし |
SQL文内で「: 」を先頭に付けた名前 |
バインド変数への設定 |
なし |
なし |
stmt.set型(n,値);
nは、「? 」の順番を表す番号 |
なし |
なし |
DBMS_SQL.BIND_VARIABLE(カーソルID,バインド変数名,値);
バインド変数名は、名前から「: 」を除いた文字列 |
SELECT |
Dim rcd As New ADODB.Recordset
rcd.Open SQL, CurrentProject.Connection
data=rcd![項目名].Value
rcd.Close |
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(SQL);
型 data=rs.get型(項目名);
rs.close();
stmt.close(); |
PreparedStatement stmt=conn.prepareStatement(SQL);
stmt.set型(n,値);
ResultSet rs=stmt.executeQuery();
型 data=rs.get型(項目名);
rs.close();
stmt.close(); |
SQLをそのまま記述 |
DECLARE
CURSOR カーソル名 IS SELECT文;
変数 カーソル名%ROWTYPE;
OPEN カーソル名;
FETCH カーソル名 INTO 変数;
DATA=変数.項目名;
CLOSE カーソル名; |
DECLARE
バインド変数 テーブル.項目名%TYPE;
変数 テーブル.項目名%TYPE;
カーソルID INTEGER;
dummy INTEGER;
カーソルID:=DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(カーソルID,SQL文,DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE(カーソルID,バインド変数名,値);
DBMS_SQL.DEFINE_COLUMN(カーソルID,番号,変数);
dummy:=DBMS_SQL.EXECUTE(カーソルID);
dummy:=DBMS_SQL.FETCH_ROWS(カーソルID);
DBMS_SQL.COLUMN_VALUE(カーソルID,番号,変数);
DBMS_SQL.CLOSE_CURSOR(カーソルID); |
Statement stmt=conn.createStatement();
stmt.execute(SQL);
ResultSet rs=stmt.getResultSet();
型 data=rs.get型(項目名);
rs.close();
stmt.close(); |
PreparedStatement stmt=conn.prepareStatement(SQL);
stmt.set型(n,値);
stmt.execute();
ResultSet rs=stmt.getResultSet();
型 data=rs.get型(項目名);
rs.close();
stmt.close(); |
項目値取得 |
data=rcd![項目名].Value
data=rcd!項目名.Value
data=rcd![n].Value |
型 data=rs.get型(項目名);
型 data=rs.get型(n); |
なし |
DATA=変数.項目名 |
DBMS_SQL.DEFINE_COLUMN(カーソルID,番号,DATA); で定義し
DBMS_DQL.COLUMN_VALUE(カーソルID,番号,DATA); |
複数行処理 |
Do Until rcd.EOF
data=rcd![項目名].Value
rcd.MoveNext
Loop |
do{
型 data=rs.get型(項目名);
}while(rs.next()); |
なし |
OPEN カーソル名;
LOOP
FETCH カーソル名 INTO 変数;
EXIT WHEN カーソル名%NOTFOUND;
DATA=変数.項目名;
END LOOP;
CLOSE カーソル名;
↓参考
カーソル名%FOUND
カーソル名%NOTFOUND
カーソル名%ISOPEN |
WHILE DBMS_SQL.FETCH_ROWS(カーソルID)!=0 LOOP
DBMS_SQL.COLUMN_VALUE(カーソルID,番号,変数);
END LOOP; |
FOR 変数 IN カーソル名 LOOP
DATA=変数.項目名;
END LOOP; |
INSERT |
rcd.Open "テーブル", CurrentProject.Connection,
adOpenDynamic, adLockPessimistic
rcd.AddNew
rcd![項目名].Value=値
rcd.Update |
Statement stmt=conn.createStatement();
int 更新件数=stmt.executeUpdate(SQL);
stmt.close();
Statement stmt = conn.createStatement();
stmt.execute(SQL);
int 更新件数=stmt.getUpdateCount();
stmt.close(); |
PreparedStatement stmt=conn.prepareStatement(SQL);
stmt.set型(n,値);
int 更新件数=stmt.executeUpdate();
stmt.close();
PreparedStatement stmt=conn.prepareStatement(SQL);
stmt.set型(n,値);
stmt.execute();
int 更新件数=stmt.getUpdateCount();
stmt.close(); |
SQLをそのまま記述 |
SQLをそのまま記述 |
DECLARE
バインド変数 テーブル.項目名%TYPE;
カーソルID INTEGER;
処理件数 INTEGER;
カーソルID:=DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(カーソルID,SQL,DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE(カーソルID,バインド変数名,値);
処理件数:=DBMS_SQL.EXECUTE(カーソルID);
DBMS_SQL.CLOSE_CURSOR(カーソルID);
COMMIT; |
UPDATE |
rcd.Open "テーブル", CurrentProject.Connection, adOpenDynamic,
adLockPessimistic
Do Until rcd.EOF
If rcd![項目名] <= 条件 Then
rcd![項目名].Value=値
rcd.Update
End If
rcd.MoveNext
Loop
rcd.Open SELECTのSQL, CurrentProject.Connection, adOpenDynamic, adLockPessimistic
Do Until rcd.EOF
rcd![項目名].Value=値
rcd.Update
rcd.MoveNext
Loop
rcd.Open UPDATEのSQL, CurrentProject.Connection |
DELETE |
rcd.Open DELETEのSQL, CurrentProject.Connection |
コミット |
|
conn.commit(); |
COMMIT; |
COMMIT; |
ロールバック |
|
conn.rollback(); |
ROLLBACK; |
ROLLBACK; |