| Symfoware(R) Server JDBCドライバユーザーズガイド - FUJITSU - |
目次
索引
![]()
|
第5章 アプリケーションの実行
5.6 デバッグ方法
SQL_SNAPの欄は、SQL_SNAP中のSPI-FUNCTION部分を指しています。下記SQL_SNAPの出力例では(1)〜(7)の部分に該当します。
|
Javaアプリケーション |
SQL_SNAP |
|---|---|
(1) Connection con = ds.getConnection();
(2) Statement stmt = con.createStatement();
(3) ResultSet rs = stmt.executeQuery("SELECT A_CHAR
FROM JDBCTEST.TABLE01");
String sName = null;
(4) while(rs.next())
{
sName = rs.getString(1);
}
(5) rs.close();
(6) stmt.close();
(7) con.close(); |
(1) SQLConnect (2) SQLAllocHandle (3) SQLExecDirect (3) SQLNumResultCols (3) SQLDescribeCol (3) SQLBindCol (4) SQLFetch (5) SQLFreeStmt (6) SQLEndTran (6) SQLFreeHandle (7) SQLDisconnect |
データを参照するJavaアプリケーションを実行した時のSQL_SNAPの出力例を以下に示します。
SQL-SNAP START 17:30:59 05/13
SPI-FUNCTION : SQLConnect ・・・・・・・・・・・・・(1)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 2
002 : ATTRIBUTE SQLCHAR*
ADDRESS 0x090d08e0
(00000000) 4a444243 54455354 * JDBCTEST *
003 : ATTRIBUTE SQLSMALLINT
VALUE -3
004 : ATTRIBUTE SQLCHAR*
ADDRESS 0x090d08f0
(00000000) 435431 * CT1 *
005 : ATTRIBUTE SQLSMALLINT
VALUE 3
006 : ATTRIBUTE SQLCHAR*
ADDRESS 0x090d0900
(00000000) 435431 * CT1 *
007 : ATTRIBUTE SQLSMALLINT
VALUE 3
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQLSTATE : 00000
SQLCODE : +0000
SQLMSG : [SymfoWARE ODBC Driver][SymfoWARE Server] JYP2001I 正
常に終了しました.
SQL-SNAP END 17:30:59 (00:00:00.301000)
SQL-SNAP START 17:30:59 05/13
SPI-FUNCTION : SQLAllocHandle(STMT) ・・・・・・・・・・・・・(2)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 2
002 : ATTRIBUTE SQLHANDLE*
ADDRESS 0x0006fa0c
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE*
ADDRESS 0x0006fa0c
VALUE 3
SPI-RETURN-CODE : 0
SQL-SNAP END 17:30:59 (00:00:00.020000)
SQL-SNAP START 17:30:59 05/13
SPI-FUNCTION : SQLExecDirect ・・・・・・・・・・・・・(3)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
002 : ATTRIBUTE SQLCHAR*
ADDRESS 0x090d0910
(00000000) 53454c45 43542041 5f434841 52204652 * SELECT A_CHAR FR *
(00000010) 4f4d204a 44424354 4553542e 5441424c * OM JDBCTEST.TABL *
(00000020) 453031 * E01 *
003 : ATTRIBUTE SQLINTEGER
VALUE 35
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.210000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLNumResultCols ・・・・・・・・・・・・・(3)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
002 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f9f0
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
001 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f9f0
VALUE 1
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.010000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLDescribeCol ・・・・・・・・・・・・・(3)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
002 : ATTRIBUTE SQLUSMALLINT
VALUE 1
003 : ATTRIBUTE SQLCHAR*
ADDRESS 0x0006f8d0
004 : ATTRIBUTE SQLSMALLINT
VALUE 128
005 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8b8
006 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8c8
007 : ATTRIBUTE SQLUINTEGER*
ADDRESS 0x0006f8c4
008 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8bc
009 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8c0
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
001 : ATTRIBUTE SQLCHAR*
ADDRESS 0x0006f8d0
(00000000) 415f4348 415200 * A_CHAR *
002 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8b8
VALUE 6
003 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8c8
VALUE 1
004 : ATTRIBUTE SQLUINTEGER*
ADDRESS 0x0006f8c4
VALUE 48
005 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8bc
VALUE 0
006 : ATTRIBUTE SQLSMALLINT*
ADDRESS 0x0006f8c0
VALUE 0
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.020000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLBindCol ・・・・・・・・・・・・・(3)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
002 : ATTRIBUTE SQLUSMALLINT
VALUE 1
003 : ATTRIBUTE SQLSMALLINT
VALUE 1
004 : ATTRIBUTE SQLPOINTER
ADDRESS 0x090d0940
005 : ATTRIBUTE SQLINTEGER
VALUE 52
006 : ATTRIBUTE SQLINTEGER*
ADDRESS 0x090d0974
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.030000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLFetch ・・・・・・・・・・・・・(4)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.071000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLFreeStmt ・・・・・・・・・・・・・(5)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
002 : ATTRIBUTE SQLUSMALLINT
VALUE 0
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.140000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLFreeHandle(STMT) ・・・・・・・・・・・・・(6)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 3
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.040000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLEndTran
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLSMALLINT
VALUE 2
002 : ATTRIBUTE SQLHANDLE
VALUE 2
003 : ATTRIBUTE SQLSMALLINT
VALUE 0
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.040000)
SQL-SNAP START 17:31:00 05/13
SPI-FUNCTION : SQLDisconnect ・・・・・・・・・・・・・(7)
SPI-THREAD-ID : 0x0000002d
SPI-ENVIRONMENT-HANDLE : 1
SPI-CONNECTION-HANDLE : 2
SPI-INPUT-VARIABLE
001 : ATTRIBUTE SQLHANDLE
VALUE 2
SPI-THREAD-ID : 0x0000002d
SPI-OUTPUT-VARIABLE
SPI-RETURN-CODE : 0
SQL-SNAP END 17:31:00 (00:00:00.070000) |
SQL_SNAPから指定されたSQL文およびSQL文を実行した結果を特定する方法を以下に説明します。
exucuteQueryメソッド実行時に出力される“SQL-FUNCTION : SQLExecDirect”部分に出力されています。
上記SQL_SNAPでは、SELECT A_CHAR FROM JDBCTEST.TABLE01が出力されています。
上記SQL_SNAPでは、“SPI-ENVIRONMENT-HANDLE:1”、“SPI-CONNECT-HANDLE:2”、“ATTRIBUTE SQLHANNDLE:3”が該当します。
|
Javaアプリケーション |
SQL_SNAP |
|---|---|
(1) Connection con = ds.getConnection();
(2) Statement stmt = con.createStatement();
(3) stmt.executeUpdate("UPDATE GENERAL.EMPLOYEE
SET NAME= 'gorilla' WHERE ID=1");
(4) stmt.close();
(5) con.close(); |
(1) SQLConnect (2) SQLAllocHandle (3) SQLExecDirect (3) SQLRowCount (4) SQLEndTran (4) SQLFreeHandle (5) SQLDisconnect |
|
Javaアプリケーション |
SQL_SNAP |
|---|---|
(1) Connection con = ds.getConnection();
(2) PreparedStatement pstmt = con.preparedStatement
("SELECT ID,NMAE FROM GENERAL.EMPLOYEE WHERE
ID=?");
(3) pstmt.setInt(1, 10);
(4) ResultSet rs = pstmt.executeQuery();
int iID = 0;
String sName = null;
(5) while (rs.next())
{
iID = rs.getInt(1);
sName = rs.getString(2);
}
(6) rs.close();
(7) pstmt.close();
(8) con.close(); |
(1) SQLConnect (2) SQLAllocHandle (2) SQLPrepare (3) SQLDescribeParam (3) SQLBindParameter (4) SQLExecute (4) SQLNumResultCols (4) SQLDescribeCol (4) SQLBindCol (5) SQLFetch (6) SQLFreeStmt (7) SQLEndTran (7) SQLFreeHandle (8) SQLDisconnect |
SQLDescribeCol、SQLBindColは列数分実行されます。
SQLFetchはデータ件数+1回分実行されます。
|
Javaアプリケーション |
SQL_SNAP |
|---|---|
(1) Connection con = ds.getConnection();
(2) PreparedStatement pstmt =
con.prepareStatement("INSERT INTO
GENERAL.EMPLOYEE(ID,NAME) VALUES(1,?)");
(3) pstmt.setString(1,"monkey");
(4) pstmt.executeUpdate();
(5) pstmt.close();
(6) con.close(); |
(1) SQLConnect (2) SQLAllocHandle (2) SQLPrepare (3) SQLDescribeParam (3) SQLBindParameter (4) SQLExecute (4) SQLRowCount (5) SQLEndTran (5) SQLFreeHandle (6) SQLDisconnect |
|
Javaアプリケーション |
SQL_SNAP |
|---|---|
(1) Connection con = ds.getConnection();
(2) CallableStatement cstmt =
con.prepareCall("{CALL GENERAL.PROC[?]}");
(3) cstmt.setInt(1,7);
(4) cstmt.executeUpdate();
(5) cstmt.close();
(6) con.close(); |
(1) SQLConnect (2) SQLAllocHandle (2) SQLPrepare (3) SQLDescribeParam (3) SQLBindParameter (4) SQLExecute (4) SQLRowCount (5) SQLEndTran (5) SQLFreeHandle (6) SQLDisconnect |
目次
索引
![]()
|