Faqs

DB2 Connectivity (Syniti DC)

評価期間は何日間ですか?

評価用ライセンスキーが発行されてから14日間となります。

Syniti Data Connectivity (略: Syniti DC)て何ですか?

『DB2 Connectivity』はVer9.7から名称を『Syniti(スィニティ)Data Connectivity(略称:Syniti DC)』に変更しました。
名称のみの変更で機能に変更はありません。
今後名称をSyniti Data Connectivityに変更してまいります。

HiT Db2 Connectivity製品の選択方法 ( ID:1635)

○もしアプリケーションがADO.NET または Visual Studioで構築されたいれば、Ritmo (.NET)を選択

○もしアプリケーションがJavaで構築されていればHiT JDBCを選択

○もしアプリケーションが Powerbuilder等の他で構築されていればHiT ODBC か HiT OLEDBを選択

ただしHiT ODBCはリレーショナル・データベース形式のみをサポートし、HiT OLEDBはリレーショナル+他のすべてのデータ形式にサポートします。

ODBC/400 と ODBC/Db2の異差

●HiT ODBC/DB2およびHiT ODBC Server/DB2はIBM Db2 on z/OS, Linux, Unix, Windowsサーバとの通信でDRDAプロトコールを使用します。 HiT ODBC/DB2およびHiT ODBC Server/DB2は、以下のIBM Db2環境で動作します。

· IBM Db2 LUW

· IBM Db2 for z/OS (OS/390)

· IBM Db2 for i – supporting IBM OS/400 Operating Systems V4R2 or higher

●HiT ODBC / 400およびHiT ODBC Server / 400は、ODBSプロトコルを使用し、IBM iオペレーティング・システムV3R1以上を必要とします。

HiT DB2 Connectivity Developer Edition (DE: 開発者版)について

IBMのi5, System i, iSeries, AS/400上で稼動するDB2データをWindowsでのActive Server Page(ASP)に利用したり、Visual Basicアプリケーションに利用したりすることは通常は簡単ではありません。HiT ODBC Server/400 Developer EditionとHiT OLEDB Server/400 Developer Editionに含まれるHiT ASPと HiT VBツールキットを利用することにより、それらの開発時間を大幅に短縮できます。

○ HiT ODBC Server/400 Developer Edition (DE: 開発者版)はi5, System i, iSeries, AS/400上で稼動するIBM DB2をアクセスするためのSQLミドルウェアで、Windowsプラットフォーム上で稼動し、ユーザまたはサードパーティのアプリケーションで利用されます。HiT ODBC Server/400 DEはDB2データのアクセス、リトリーブ、アップデートにWindows Open Database Connectivity (ODBC)をサポートします。またActive Server Page(ASP)と Visual Basic のツールキットを含みADO経由でDB2データを接続、クエリー、リトリーブ、アップデートが可能なソースコードを含むサンプル・アプリケーションが含まれます。
またIBM Optimized Database Server (ODBS)プロトコール標準を利用しているので、HiT ODBC Server/400 DEはネイティブなIBM OS/400サーバ・プログラムを使用し、i5, System i, iSeries, AS/400プラットフォームに特別なソフトウェアは必要ありません。

○ HiT OLEDB Server/400 Developer Edition (DE)は同様にi5, System i, iSeries, AS/400上で稼動するIBM DB2をアクセスするためのSQLミドルウェアで、Windowsプラットフォーム上で稼動し、ユーザまたはサードパーティのアプリケーションで利用されます。HiT OLEDB Server/400 DEはADO v2.x経由、またはOEL DBオブジェクト・プロパティ経由での直接にアプリケーションSQLステートメントが可能で、そしてDB2データのアクセス、リトリーブ、アップデートが可能です。また同様にHiT ASPと HiT VBツールキットを含みます。

●HiT ASP ツールキット
Webアプリケーションの開発の高速化に最適
Microsoft IIS Web開発用のHiT Active Server Page (ASP) ツールキットはHiT ODBC Serverミドルウェアとの組合せでIIS ASP開発環境でのDB2のWeb統合に有益なスタートをもたらします。

HiT ASPツールキットに含まれるWebアプリケーションからDB2テーブルに対するクエリー、アップデートの検証済ASPサンプルを開発者が利用することでWebアプリケーション・開発時間を大幅に削減できます。サンプルにはADOレコードセットを使用しての接続確立方法、ストアード・プロシージャ実行、テーブル・データのリトリーブとインサート、HTML経由での結果表示などがあります。すべてのサンプルは各種のDB2サーバとプラットフォームで検証されています。HiT ASPツールキットはWindowsフラットフォームで稼動し、HiT ODBCサーバ製品経由でDB2サーバとコミュニケーションを行います。

●HiT VBツールキット
高速VBアプリケーション開発に最適
HiT VBツールキットはすべてのHiT ODBC と OLE DB開発者版製品に含まれMicrosoft Visual Basicを使用する開発者をサポートします。HiT ODBC と OLE DBミドルウェア製品と組み合わせて使用することにより、Visual Basic開発環境でのDB2アプリケーション・インテグレーションに有益なスタートをもたらします。

HiT VBツールキットでADO, RDO, DAO, ODBCDirectインターフェイスを使用してDB2テーブル・データにアクセスするためのソース・コード・サンプルを開発者に提供することにより、アプリケーションの開発時間を削減することができます。サンプルはレコードセットを使用しての接続確立、ストアード・プロシージャの実行、DB2データのアップデートなどが含まれます。すべてのサンプルは各種のDB2サーバとプラットフォームで検証されています。HiT VBツールキットはWindowsフラットフォームで稼動し、HiT ODBCとOLE DB製品経由でDB2サーバとのコミュニケーションを行います。

Ritmo を使用してDB2 をアクセスC# や VB.NET のサンプル・コードはどこか にありますか?

Q:Ritmo を使用してDB2 をアクセスC# や VB.NET のサンプル・コードはどこか
にありますか?

A:基本的なSELECT/INSERT/UPDATE/DELETE を実行できるようにRitmo はC# と
VB.NET コード・サンプルを準備しています。さらにストアード・プロシージ
ャ・コール作成やパラメトリック・クエリもカバーします。Ritmo ToolBox Help
メニューの下にサンプル・コードがあります。Ritmo ToolBox のプルダウン・メ
ニューからHelp/Contents を選択してサンプルコードを選びます。

Q: 各プラットフォームでのDB2用のデフォルトHost Code Pageとポート・ナンバーは?

A:

AIX
Host Code Page – 819 Latin
Port Number – 446

Linux
Host Code Page – 819
Port Number – 50000

OS390
Host Code Page – 037
Port Number – 446

OS400 (AS/400)
Host Code Page 037
Port Number 8471

Windows Server
Host Code Page – 1252
Port Number – 50000

.NET経由でAS/400に接続する時にHiT OLEDB/400を選択するのかRitmo/iを選択するのか?

.NETアプリケーション開発者はAS/400サーバへアクセスするためにはマイクロソフトが提供するADO.NET-to-OLE DBまたは-ODBC 使用してODBC または OLEDBのどちらかを経由してそのリモートのデータベースに接続します。しかしこれらのブリッジ・ソリューションはパフォーマンスに影響し、CLR(Common Language Run-time)開発環境を利用する根本のプロバイダとドライバを阻害します。

Ritmo/i はこれらのブリッジ手法より優れた選択になります。それはブリッジを除外し、高いパフォーマンス、CLR機能、アプリケーションに対するオペレーティング。システムスケーラブルな管理を提供します

Q:Visual C++ を使用して AS/400への接続をどのようにイニシエイトしますか?

A: サンプルコードは:
///////////////////////////////////////////////////////////////////////////////
// OLE400 Test Sample – 07-07-2000
//
// Standard sample for testing HiT OLEDB400 Provider.
// Initialization phases can be used in any other connect exercise.
//
///////////////////////////////////////////////////////////////////////////////

#include
//You may derive a class from CComModule and use it if you want to override
//something, but do not change the name of _Module
extern CComModule _Module;
#include
#include
#include “atldb.h”
#include
#include

#include

#define SAFE_RELEASE(pv) if(pv) { (pv)->Release(); (pv) = NULL; }
#define TESTC(hr) { if(FAILED(hr)) goto CLEANUP; }

WCHAR* A2WSTR(LPCSTR lp, int nLen) {

USES_CONVERSION;
BSTR str = NULL;

int nConvertedLen = MultiByteToWideChar(_acp,
0,
lp,
nLen,
NULL,
NULL) – 1;

str = ::SysAllocStringLen(NULL, nConvertedLen);

if ( str != NULL ) {
MultiByteToWideChar(_acp,
0,
lp,
-1,
str,
nConvertedLen);
}
return str;
}

LPSTR WSTR2A(LPSTR cBuf, LPCWSTR lpw, LPCSTR lpDef) {

USES_CONVERSION;

int nConvertedLen = WideCharToMultiByte(_acp,
0,
lpw,
-1,
NULL,
0,
lpDef,
NULL) – 1;
if (nConvertedLen>0) {

if ( cBuf != NULL ) {
WideCharToMultiByte(_acp,
0,
lpw,
-1,
cBuf,
nConvertedLen,
lpDef,
NULL);
}
}

return cBuf;
}

CComPtr pMalloc;
MEMORYSTATUS lpBuffer;

// MAIN TEST FUNCTION
///////////////////////////////////////////////////////////////////////////////

void main ()
{

IDBInitialize* pIDBInitialize = NULL;
IDataInitialize* pIDataInitialize = NULL;
DWORD dwCLSCTX = CLSCTX_INPROC_SERVER;
DBPROPSET* prgPropSets = NULL;
ULONG cPropSets;
IUnknown* pDataSource = NULL;
IDBProperties* pIDBProperties = NULL;
WCHAR* pwszTemp;
WCHAR* pwszInitString;
HRESULT hr = S_OK;

hr = CoInitialize(NULL);
if (FAILED(hr))
return;

// retrieve pMalloc interface
hr = ::CoGetMalloc(1, (LPMALLOC *) &pMalloc);
if (FAILED(hr))
return;

hr = CoCreateInstance(CLSID_MSDAINITIALIZE,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDataInitialize,
(void**)&pIDataInitialize);

///////////////////////////////////////////////////////
// Prompt data
char lpItemText [200];
char lpUDL [50];
char lpUserID [30];
char lpPassword [30];
int nLen = -1;

memset (lpItemText, 0, 200);
memset (lpUDL, 0, 50);
memset (lpUserID, 0, 30);
memset (lpPassword, 0, 30);

printf (“Open connection to HiT OLE DB Provider for DB2\r\n”);
printf (“==================================================\r\n”);

printf (“UDL File\t: “);
scanf (“%s”, lpUDL);
sprintf (lpItemText, “C:\\Program Files\\Common Files\\System\\OLE DB\\Data Links\\%s”, lpUDL);
printf (“\r\n”);

printf (“User ID \t: “);
scanf (“%s”, lpUserID);
printf (“\r\n”);

printf (“Password\t: “);
scanf (“%s”, lpPassword);
printf (“\r\n”);

///////////////////////////////////////////////////////
// Get connection string from Data Link file
nLen = strlen(lpItemText);
pwszTemp = A2WSTR(lpItemText, nLen + 1 );

hr = pIDataInitialize->LoadStringFromStorage(pwszTemp, &pwszInitString);

SysFreeString (pwszTemp);

///////////////////////////////////////////////////////
// Get Data Source object
hr = pIDataInitialize->GetDataSource(NULL,
dwCLSCTX,
pwszInitString,
IID_IDBInitialize,
(IUnknown**)&pDataSource);

hr = pDataSource->QueryInterface(IID_IDBInitialize, (void**)&pIDBInitialize);

if (pIDBProperties == NULL)
hr = pIDBInitialize->QueryInterface (IID_IDBProperties,
(void**)&pIDBProperties);

hr = pIDBProperties->GetProperties(0, NULL, &cPropSets, &prgPropSets);

// Set edit data link properties
DBPROP rgProps[3];
DBPROPSET PropSet;

rgProps[0].dwPropertyID = DBPROP_INIT_PROMPT;
rgProps[0].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[0].vValue.vt = VT_I2;
rgProps[0].vValue.iVal = DBPROMPT_NOPROMPT;

rgProps[1].dwPropertyID = DBPROP_AUTH_USERID;
rgProps[1].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[1].vValue.vt = VT_BSTR;
nLen = strlen(lpUserID);
pwszTemp = A2WSTR(lpUserID, nLen + 1 );
V_BSTR(&(rgProps[1].vValue))= SysAllocStringLen (pwszTemp, wcslen(pwszTemp));

rgProps[2].dwPropertyID = DBPROP_AUTH_PASSWORD;
rgProps[2].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[2].vValue.vt = VT_BSTR;
nLen = strlen(lpPassword);
pwszTemp = A2WSTR(lpPassword, nLen + 1 );
rgProps[2].vValue.bstrVal = SysAllocStringLen (pwszTemp, wcslen(pwszTemp));

PropSet.cProperties = 3;
PropSet.rgProperties = rgProps;
PropSet.guidPropertySet = DBPROPSET_DBINIT;

hr = pIDBProperties->SetProperties (1, &PropSet);

// Free memory
SysFreeString (rgProps[1].vValue.bstrVal);
SysFreeString (rgProps[2].vValue.bstrVal);

// free all properties
pMalloc->Free (prgPropSets->rgProperties);

// now free the property set
pMalloc->Free (prgPropSets);

///////////////////////////////////////////////////////
// Initialize connection
printf (“Connecting…\r\n\r\n”);

hr = pIDBInitialize->Initialize();
if (FAILED(hr))
return;

printf (“CONNECTED\r\n\r\n”);

// to do: put any code here
// …

///////////////////////////////////////////////////////
// Disconnect
printf (“Disconnecting…\r\n”);

// Release any references and continue.
hr = pIDBInitialize->Uninitialize ();

SAFE_RELEASE(pIDBInitialize);

SAFE_RELEASE (pIDBProperties);
SAFE_RELEASE (pDataSource);

SAFE_RELEASE (pIDataInitialize);

CoUninitialize();

SAFE_RELEASE (pIDBInitialize);
}

Host Code Pageについて(KBFAQ 1024)

HiT ODBC/400, HiT OLEDB/400 and Ritmo for iSeries

IDS_CODEPAGE_037_1 “037 – US/Can./Australia/N.Z.”
IDS_CODEPAGE_037_2 “037 – Netherlands”
IDS_CODEPAGE_037_3 “037 – Portugal/Brazil”
IDS_CODEPAGE_273 “273 – German/Austrian”
IDS_CODEPAGE_277 “277 – Danish/Norwegian”
IDS_CODEPAGE_278 “278 – Finnish/Swedish”
IDS_CODEPAGE_280 “280 – Italian”
IDS_CODEPAGE_284 “284 – Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_285 “285 – UK”
IDS_CODEPAGE_297 “297 – French”
IDS_CODEPAGE_424 “424 – Hebrew”
IDS_CODEPAGE_500 “500 – Belgian/Swiss/Can.”
IDS_CODEPAGE_870 “870 – Eastern Europe”
IDS_CODEPAGE_871 “871 – Icelandic”
IDS_CODEPAGE_875 “875 – Greek”
IDS_CODEPAGE_1026 “1026 – Turkey”
IDS_CODEPAGE_290 “290 – Jpn. Katakana Host SBCS”
IDS_CODEPAGE_1027 “1027 – Jpn. Latin Host SBCS”
IDS_CODEPAGE_933 “933 – Korean”
IDS_CODEPAGE_935 “935 – Simplified Chinese”
IDS_CODEPAGE_937 “937 – Traditional Chinese”
IDS_CODEPAGE_4396 “4396 – Jpn. Host DBCS”
IDS_CODEPAGE_5026 “5026 – Jpn. Katakana-Kanji Host Mix.”
IDS_CODEPAGE_5035 “5035 – Jpn. Latin-Kanji Host Mix.”
IDS_CODEPAGE_1140_1 “1140 – (Euro) US/Can./Australia”
IDS_CODEPAGE_1140_2 “1140 – (Euro) N.Z./Netherlands”
IDS_CODEPAGE_1140_3 “1140 – (Euro) Portugal/Brazil”
IDS_CODEPAGE_1141 “1141 – (Euro) German/Austrian”
IDS_CODEPAGE_1142 “1142 – (Euro) Danish/Norwegian”
IDS_CODEPAGE_1143 “1143 – (Euro) Finnish/Swedish”
IDS_CODEPAGE_1144 “1144 – (Euro) Italian”
IDS_CODEPAGE_1145 “1145 – (Euro) Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_1146 “1146 – (Euro) UK”
IDS_CODEPAGE_1147 “1147 – (Euro) French”
IDS_CODEPAGE_1148 “1148 – (Euro) Belgian/Swiss/Can.”
IDS_CODEPAGE_1149 “1149 – (Euro) Icelandic”
IDS_CODEPAGE_420 “420 – Arabic”
IDS_CODEPAGE_838 “838 – Thai”

HiT ODBC/DB2, HiT OLEDB/DB2, and Ritmo for DB2

IDS_CODEPAGE_037_1 “037 – US/Canada/Australia/N.Z.”
IDS_CODEPAGE_037_2 “037 – Netherlands”
IDS_CODEPAGE_037_3 “037 – Portugal/Brazil”
IDS_CODEPAGE_273 “273 – German/Austrian”
IDS_CODEPAGE_277 “277 – Danish/Norwegian”
IDS_CODEPAGE_278 “278 – Finnish/Swedish”
IDS_CODEPAGE_280 “280 – Italian”
IDS_CODEPAGE_284 “284 – Spanish”
IDS_CODEPAGE_285 “285 – UK”
IDS_CODEPAGE_297 “297 – French”
IDS_CODEPAGE_420 “420 – Arabic”
IDS_CODEPAGE_424 “424 – Hebrew”
IDS_CODEPAGE_500 “500 – Belgian/Swiss”
IDS_CODEPAGE_819 “819 – Latin”
IDS_CODEPAGE_870 “870 – Eastern Europe”
IDS_CODEPAGE_871 “871 – Icelandic”
IDS_CODEPAGE_875 “875 – Greek”
IDS_CODEPAGE_290 “290 – Jpn. Katakana Host SBCS”
IDS_CODEPAGE_932 “932 – Jpn. PC Mixed incl. 1880 UDC”
IDS_CODEPAGE_933 “933 – Korean”
IDS_CODEPAGE_935 “935 – S. Chinese”
IDS_CODEPAGE_937 “937 – T. Chinese”
IDS_CODEPAGE_943 “943 – Jpn. PC Mixed for Open Env.”
IDS_CODEPAGE_954 “954 – Jpn. EUC”
IDS_CODEPAGE_1026 “1026 – Turkey”
IDS_CODEPAGE_1027 “1027 – Jpn. Latin Host SBCS”
IDS_CODEPAGE_1140_1 “1140 – (Euro) US/Can./Australia”
IDS_CODEPAGE_1140_2 “1140 – (Euro) N.Z./Netherlands”
IDS_CODEPAGE_1140_3 “1140 – (Euro) Portugal/Brazil”
IDS_CODEPAGE_1141 “1141 – (Euro) German/Austrian”
IDS_CODEPAGE_1142 “1142 – (Euro) Danish/Norwegian”
IDS_CODEPAGE_1143 “1143 – (Euro) Finnish/Swedish”
IDS_CODEPAGE_1144 “1144 – (Euro) Italian”
IDS_CODEPAGE_1145 “1145 – (Euro) Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_1146 “1146 – (Euro) UK”
IDS_CODEPAGE_1147 “1147 – (Euro) French”
IDS_CODEPAGE_1148 “1148 – (Euro) Belgian/Swiss/Can.”
IDS_CODEPAGE_1149 “1149 – (Euro) Icelandic”
IDS_CODEPAGE_1252 “1252 – Windows ANSI”
IDS_CODEPAGE_4396 “4396 – Jpn. Host DBCS”
IDS_CODEPAGE_5026 “5026 – Jpn. Katakana-Kanji Host Mixed”
IDS_CODEPAGE_5035 “5035 – Jpn. Latin-Kanji Host Mixed”

HiT JDBC/400 API サポート

 

Methods: Return Types: Supported:

Interface Blob

getBinaryStream() InputStream Yes
getBytes(long pos, int length) byte[] Yes
length() long Yes
position(Blob pattern, long start) long No
position(byte[] pattern, long start) long No

 

 

Methods: Return Types: Supported:

Interface CallableStatement

getArray(int i) Array No
getBigDecimal(int parameterIndex) BigDecimal Yes
getBigDecimal(int parameterIndex, int scale) BigDecimal Yes
getBlob(int i) Blob No (soon)
getBoolean(int parameterIndex) boolean Yes
getByte(int parameterIndex) byte Yes
getBytes(int parameterIndex) byte[] Yes
getClob(int i) Clob No (soon)
getDate(int parameterIndex) Date Yes
getDate(int parameterIndex, Calendar cal) Date No (soon)
getDouble(int parameterIndex) double Yes
getFloat(int parameterIndex) float Yes
getInt(int parameterIndex) int Yes
getLong(int parameterIndex) long Yes
getObject(int parameterIndex) Object Yes
getObject(int i, Map map) Object No
getRef(int i) Ref No
getShort(int parameterIndex) short Yes
getString(int parameterIndex) String Yes
getTime(int parameterIndex) Time Yes
getTime(int parameterIndex, Calendar cal) Time Yes
getTimestamp(int parameterIndex) Timestamp Yes
getTimestamp(int parameterIndex, Calendar cal) Timestamp No
registerOutParameter(int parameterIndex, int sqlType) void Yes
registerOutParameter(int parameterIndex, int sqlType, int scale) void No
registerOutParameter(int paramIndex, int sqlType, String typeName) void No
wasNull() boolean Yes

 

 

Methods: Return Types: Supported:

Interface Clob

getAsciiStream() InputStream No
getCharacterStream() Reader Yes
getSubString(long pos, int length) String Yes
length() long Yes
position(Clob searchstr, long start) long No
position(String searchstr, long start) long No

 

 

Methods: Return Types: Supported:

Interface Connection

clearWarnings() void Yes
close() void Yes
commit() void Yes
createStatement() Statement Yes
createStatement(int resultSetType, int resultSetConcurrency) Statement Yes
getAutoCommit() boolean Yes
getCatalog() String Yes
getMetaData() DatabaseMetaData Yes
getTransactionIsolation() int Yes
getTypeMap() Map No
getWarnings() SQLWarning Yes
isClosed() boolean Yes
isReadOnly() boolean Yes
nativeSQL(String sql) String Yes
prepareCall(String sql) CallableStatement Yes
prepareCall(String sql, int resultSetType, int resultSetConcurrency) CallableStatement Yes
prepareStatement(String sql) PreparedStatement Yes
prepareStatement(String sql, int resultSetType, int resultSetConcurrency) PreparedStatement Yes
rollback() void Yes
setAutoCommit(boolean autoCommit) void Yes
setCatalog(String catalog) void Yes
setReadOnly(boolean readOnly) void Yes
setTransactionIsolation(int level) void Yes
setTypeMap(Map map) void No

 

 

Methods: Return Types: Supported:

Interface DatabaseMetaData

allProceduresAreCallable() boolean Yes
allTablesAreSelectable() boolean Yes
dataDefinitionCausesTransactionCommit() boolean Yes
dataDefinitionIgnoredInTransactions() boolean Yes
deletesAreDetected(int type) boolean Yes
doesMaxRowSizeIncludeBlobs() boolean Yes
getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) ResultSet Yes
getCatalogs() ResultSet Yes
getCatalogSeparator() String Yes
getCatalogTerm() String Yes
getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) ResultSet Yes
getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) ResultSet Yes
getConnection() Connection Yes
getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) ResultSet Yes
getDatabaseProductName() String Yes
getDatabaseProductVersion() String Yes
getDefaultTransactionIsolation() int Yes
getDriverMajorVersion() int Yes
getDriverMinorVersion() int Yes
getDriverName() String Yes
getDriverVersion() String Yes
getExportedKeys(String catalog, String schema, String table) ResultSet Yes
getExtraNameCharacters() String Yes
getIdentifierQuoteString() String Yes
getImportedKeys(String catalog, String schema, String table) ResultSet Yes
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) ResultSet Yes
getMaxBinaryLiteralLength() int Yes
getMaxCatalogNameLength() int Yes
getMaxCharLiteralLength() int Yes
getMaxColumnNameLength() int Yes
getMaxColumnsInGroupBy() int Yes
getMaxColumnsInIndex() int Yes
getMaxColumnsInOrderBy() int Yes
getMaxColumnsInSelect() int Yes
getMaxColumnsInTable() int Yes
getMaxConnections() int Yes
getMaxCursorNameLength() int Yes
getMaxIndexLength() int Yes
getMaxProcedureNameLength() int Yes
getMaxRowSize() int Yes
getMaxSchemaNameLength() int Yes
getMaxStatementLength() int Yes
getMaxStatements() int Yes
getMaxTableNameLength() int Yes
getMaxTablesInSelect() int Yes
getMaxUserNameLength() int Yes
getNumericFunctions() String Yes
getPrimaryKeys(String catalog, String schema, String table) ResultSet Yes
getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) ResultSet Yes
getProcedures(String catalog, String schemaPattern, String procedureNamePattern) ResultSet Yes
getProcedureTerm() String Yes
getSchemas() ResultSet Yes
getSchemaTerm() String Yes
getSearchStringEscape() String Yes
getSQLKeywords() String Yes
getStringFunctions() String Yes
getSystemFunctions() String Yes
getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) ResultSet Yes
getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) ResultSet Yes
getTableTypes() ResultSet Yes
getTimeDateFunctions() String Yes
getTypeInfo() ResultSet Yes
getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) ResultSet Yes
getURL() String Yes
getUserName() String Yes
getVersionColumns(String catalog, String schema, String table) ResultSet Yes
insertsAreDetected(int type) boolean Yes
isCatalogAtStart() boolean Yes
isReadOnly() boolean Yes
nullPlusNonNullIsNull() boolean Yes
nullsAreSortedAtEnd() boolean Yes
nullsAreSortedAtStart() boolean Yes
nullsAreSortedHigh() boolean Yes
nullsAreSortedLow() boolean Yes
othersDeletesAreVisible(int type) boolean Yes
othersInsertsAreVisible(int type) boolean Yes
othersUpdatesAreVisible(int type) boolean Yes
ownDeletesAreVisible(int type) boolean Yes
ownInsertsAreVisible(int type) boolean Yes
ownUpdatesAreVisible(int type) boolean Yes
storesLowerCaseIdentifiers() boolean Yes
storesLowerCaseQuotedIdentifiers() boolean Yes
storesMixedCaseIdentifiers() boolean Yes
storesMixedCaseQuotedIdentifiers() boolean Yes
storesUpperCaseIdentifiers() boolean Yes
storesUpperCaseQuotedIdentifiers() boolean Yes
supportsAlterTableWithAddColumn() boolean Yes
supportsAlterTableWithDropColumn() boolean Yes
supportsANSI92EntryLevelSQL() boolean Yes
supportsANSI92FullSQL() boolean Yes
supportsANSI92IntermediateSQL() boolean Yes
supportsBatchUpdates() boolean Yes
supportsCatalogsInDataManipulation() boolean Yes
supportsCatalogsInIndexDefinitions() boolean Yes
supportsCatalogsInPrivilegeDefinitions() boolean Yes
supportsCatalogsInProcedureCalls() boolean Yes
supportsCatalogsInTableDefinitions() boolean Yes
supportsColumnAliasing() boolean Yes
supportsConvert() boolean No
supportsConvert(int fromType, int toType) boolean No
supportsCoreSQLGrammar() boolean Yes
supportsCorrelatedSubqueries() boolean Yes
supportsDataDefinitionAndDataManipulationTransactions() boolean Yes
supportsDataManipulationTransactionsOnly() boolean Yes
supportsDifferentTableCorrelationNames() boolean Yes
supportsExpressionsInOrderBy() boolean Yes
supportsExtendedSQLGrammar() boolean Yes
supportsFullOuterJoins() boolean Yes
supportsGroupBy() boolean Yes
supportsGroupByBeyondSelect() boolean Yes
supportsGroupByUnrelated() boolean Yes
supportsIntegrityEnhancementFacility() boolean Yes
supportsLikeEscapeClause() boolean Yes
supportsLimitedOuterJoins() boolean Yes
supportsMinimumSQLGrammar() boolean Yes
supportsMixedCaseIdentifiers() boolean Yes
supportsMixedCaseQuotedIdentifiers() boolean Yes
supportsMultipleResultSets() boolean Yes
supportsMultipleTransactions() boolean Yes
supportsNonNullableColumns() boolean Yes
supportsOpenCursorsAcrossCommit() boolean Yes
supportsOpenCursorsAcrossRollback() boolean Yes
supportsOpenStatementsAcrossCommit() boolean Yes
supportsOpenStatementsAcrossRollback() boolean Yes
supportsOrderByUnrelated() boolean Yes
supportsOuterJoins() boolean Yes
supportsPositionedDelete() boolean Yes
supportsPositionedUpdate() boolean Yes
supportsResultSetConcurrency(int type, int concurrency) boolean Yes
supportsResultSetType(int type) boolean Yes
supportsSchemasInDataManipulation() boolean Yes
supportsSchemasInIndexDefinitions() boolean Yes
supportsSchemasInPrivilegeDefinitions() boolean Yes
supportsSchemasInProcedureCalls() boolean Yes
supportsSchemasInTableDefinitions() boolean Yes
supportsSelectForUpdate() boolean Yes
supportsStoredProcedures() boolean Yes
supportsSubqueriesInComparisons() boolean Yes
supportsSubqueriesInExists() boolean Yes
supportsSubqueriesInIns() boolean Yes
supportsSubqueriesInQuantifieds() boolean Yes
supportsTableCorrelationNames() boolean Yes
supportsTransactionIsolationLevel(int level) boolean Yes
supportsTransactions() boolean Yes
supportsUnion() boolean Yes
supportsUnionAll() boolean Yes
updatesAreDetected(int type) boolean Yes
usesLocalFilePerTable() boolean Yes
usesLocalFiles() boolean Yes

 

Methods: Return Types: Supported:

Interface PreparedStatement

addBatch() void Yes
clearParameters() void Yes
execute() boolean Yes
executeQuery() ResultSet Yes
executeUpdate() int Yes
getMetaData() ResultSetMetaData Yes
setArray(int i, Array x) void No
setAsciiStream(int parameterIndex, InputStream x, int length) void Yes
setBigDecimal(int parameterIndex, BigDecimal x) void Yes
setBinaryStream(int parameterIndex, InputStream x, int length) void Yes
setBlob(int i, Blob x) void Yes
setBoolean(int parameterIndex, boolean x) void Yes
setByte(int parameterIndex, byte x) void Yes
setBytes(int parameterIndex, byte[] x) void Yes
setCharacterStream(int parameterIndex, Reader reader, int length) void Yes
setClob(int i, Clob x) void Yes
setDate(int parameterIndex, Date x) void Yes
setDate(int parameterIndex, Date x, Calendar cal) void Yes
setDouble(int parameterIndex, double x) void Yes
setFloat(int parameterIndex, float x) void Yes
setInt(int parameterIndex, int x) void Yes
setLong(int parameterIndex, long x) void Yes
setNull(int parameterIndex, int sqlType) void yes
setNull(int paramIndex, int sqlType, String typeName) void no
setObject(int parameterIndex, Object x) void Yes
setObject(int parameterIndex, Object x, int targetSqlType) void Yes
setObject(int parameterIndex, Object x, int targetSqlType, int scale) void Yes
setRef(int i, Ref x) void No
setShort(int parameterIndex, short x) void Yes
setString(int parameterIndex, String x) void Yes
setTime(int parameterIndex, Time x) void Yes
setTime(int parameterIndex, Time x, Calendar cal) void Yes
setTimestamp(int parameterIndex, Timestamp x) void Yes
setTimestamp(int parameterIndex, Timestamp x, Calendar cal) void Yes
setUnicodeStream(int parameterIndex, InputStream x, int length) void Yes

 

Methods: Return Types: Supported:

Interface ResultSet

absolute(int row) boolean Yes
afterLast() void Yes
beforeFirst() void Yes
cancelRowUpdates() void Yes
clearWarnings() void Yes
close() void Yes
deleteRow() void Yes
findColumn(String columnName) int Yes
first() boolean Yes
getArray(int i) Array No
getArray(String colName) Array Yes
getAsciiStream(int columnIndex) InputStream Yes
getAsciiStream(String columnName) InputStream Yes
getBigDecimal(int columnIndex) BigDecimal Yes
getBigDecimal(int columnIndex, int scale) BigDecimal Yes
getBigDecimal(String columnName) BigDecimal Yes
getBigDecimal(String columnName, int scale) BigDecimal Yes
getBinaryStream(int columnIndex) InputStream Yes
getBinaryStream(String columnName) InputStream Yes
getBlob(int i) Blob Yes
getBlob(String colName) Blob Yes
getBoolean(int columnIndex) boolean Yes
getBoolean(String columnName) boolean Yes
getByte(int columnIndex) byte Yes
getByte(String columnName) byte Yes
getBytes(int columnIndex) byte[] Yes
getBytes(String columnName) byte[] Yes
getCharacterStream(int columnIndex) Reader Yes
getCharacterStream(String columnName) Reader Yes
getClob(int i) Clob Yes
getClob(String colName) Clob Yes
getConcurrency() int Yes
getCursorName() String Yes
getDate(int columnIndex) Date Yes
getDate(int columnIndex, Calendar cal) Date Yes
getDate(String columnName) Date Yes
getDate(String columnName, Calendar cal) Date Yes
getDouble(int columnIndex) double Yes
getDouble(String columnName) double Yes
getFetchDirection() int Yes
getFetchSize() int Yes
getFloat(int columnIndex) float Yes
getFloat(String columnName) float Yes
getInt(int columnIndex) int Yes
getInt(String columnName) int Yes
getLong(int columnIndex) long Yes
getLong(String columnName) long Yes
getMetaData() ResultSetMetaData Yes
getObject(int columnIndex) Object Yes
getObject(int i, Map map) Object No
getObject(String columnName) Object Yes
getObject(String colName, Map map) Object No
getRef(int i) Ref No
getRef(String colName) Ref No
getRow() int Yes
getShort(int columnIndex) short Yes
getShort(String columnName) short Yes
getStatement() Statement Yes
getString(int columnIndex) String Yes
getString(String columnName) String Yes
getTime(int columnIndex) Time Yes
getTime(int columnIndex, Calendar cal) Time Yes
getTime(String columnName) Time Yes
getTime(String columnName, Calendar cal) Time Yes
getTimestamp(int columnIndex) Timestamp Yes
getTimestamp(int columnIndex, Calendar cal) Timestamp Yes
getTimestamp(String columnName) Timestamp Yes
getTimestamp(String columnName, Calendar cal) Timestamp Yes
getType() int Yes
getUnicodeStream(int columnIndex) InputStream Yes
getUnicodeStream(String columnName) InputStream Yes
getWarnings() SQLWarning Yes
insertRow() void Yes
isAfterLast() boolean Yes
isBeforeFirst() boolean Yes
isFirst() boolean Yes
isLast() boolean Yes
last() boolean Yes
moveToCurrentRow() void Yes
moveToInsertRow() void Yes
next() boolean Yes
previous() boolean Yes
refreshRow() void Yes
relative(int rows) boolean Yes
rowDeleted() boolean Yes
rowInserted() boolean Yes
rowUpdated() boolean Yes
setFetchDirection(int direction) void Yes
setFetchSize(int rows) void Yes
updateAsciiStream(int columnIndex, InputStream x, int length) void Yes
updateAsciiStream(String columnName, InputStream x, int length) void Yes
updateBigDecimal(int columnIndex, BigDecimal x) void Yes
updateBigDecimal(String columnName, BigDecimal x) void Yes
updateBinaryStream(int columnIndex, InputStream x, int length) void Yes
updateBinaryStream(String columnName, InputStream x, int length) void Yes
updateBoolean(int columnIndex, boolean x) void Yes
updateBoolean(String columnName, boolean x) void Yes
updateByte(int columnIndex, byte x) void Yes
updateByte(String columnName, byte x) void Yes
updateBytes(int columnIndex, byte[] x) void Yes
updateBytes(String columnName, byte[] x) void Yes
updateCharacterStream(int columnIndex, Reader x, int length) void Yes
updateCharacterStream(String columnName, Reader reader, int length) void Yes
updateDate(int columnIndex, Date x) void Yes
updateDate(String columnName, Date x) void Yes
updateDouble(int columnIndex, double x) void Yes
updateDouble(String columnName, double x) void Yes
updateFloat(int columnIndex, float x) void Yes
updateFloat(String columnName, float x) void Yes
updateInt(int columnIndex, int x) void Yes
updateInt(String columnName, int x) void Yes
updateLong(int columnIndex, long x) void Yes
updateLong(String columnName, long x) void Yes
updateNull(int columnIndex) void Yes
updateNull(String columnName) void Yes
updateObject(int columnIndex, Object x) void Yes
updateObject(int columnIndex, Object x, int scale) void Yes
updateObject(String columnName, Object x) void Yes
updateObject(String columnName, Object x, int scale) void Yes
updateRow() void Yes
updateShort(int columnIndex, short x) void Yes
updateShort(String columnName, short x) void Yes
updateString(int columnIndex, String x) void Yes
updateString(String columnName, String x) void Yes
updateTime(int columnIndex, Time x) void Yes
updateTime(String columnName, Time x) void Yes
updateTimestamp(int columnIndex, Timestamp x) void Yes
updateTimestamp(String columnName, Timestamp x) void Yes
wasNull() boolean Yes

 

Methods: Return Types: Supported:

Interface ResultSetMetaData

getCatalogName(int column) String Yes
getColumnClassName(int column) String No
getColumnCount() int Yes
getColumnDisplaySize(int column) int Yes
getColumnLabel(int column) String Yes
getColumnName(int column) String Yes
getColumnType(int column) int Yes
getColumnTypeName(int column) String Yes
getPrecision(int column) int Yes
getScale(int column) int Yes
getSchemaName(int column) String Yes
getTableName(int column) String Yes
isAutoIncrement(int column) boolean Yes
isCaseSensitive(int column) boolean Yes
isCurrency(int column) boolean Yes
isDefinitelyWritable(int column) boolean Yes
isNullable(int column) int Yes
isReadOnly(int column) boolean Yes
isSearchable(int column) boolean Yes
isSigned(int column) boolean Yes
isWritable(int column) boolean Yes

 

Methods: Return Types: Supported:

Interface Statement

addBatch(String sql) void Yes
cancel() void No
clearBatch() void Yes
clearWarnings() void Yes
close() void Yes
execute(String sql) boolean Yes
executeBatch() int[] Yes
executeQuery(String sql) ResultSet Yes
executeUpdate(String sql) int Yes
getConnection() Connection Yes
getFetchDirection() int Yes
getFetchSize() int Yes
getMaxFieldSize() int Yes
getMaxRows() int Yes
getMoreResults() boolean Yes
getQueryTimeout() int Yes
getResultSet() ResultSet Yes
getResultSetConcurrency() int Yes
getResultSetType() int Yes
getUpdateCount() int Yes
getWarnings() SQLWarning Yes
setCursorName(String name) void no
setEscapeProcessing(boolean enable) void Yes
setFetchDirection(int direction) void no
setFetchSize(int rows) void no
setMaxFieldSize(int max) void Yes
setMaxRows(int max) void Yes
setQueryTimeout(int seconds) void Yes

 

 

 

Methods: Return Types: Supported:

Interface Array

No

Interface Struct

No

Interface SQLOutput

No

Interface SQLInput

No

Interface SQLData

No

Interface Ref

No

Interface Driver

Support but not to public

 

 

ライセンス体系はどのようになっていますか?

ワークステーション(クライアント)、またはサーバ・ベースでライセンスされます。クライアント・ライセンスは各PCごとにライセンスされます。クライント・ライセンスをWindowsサーバで稼動させることはできません。

サーバライセンスには次の2種類があります。
1) Open Connectionサーバ・ライセンスは 同時接続数には制限はありませんが、プロセッサ毎の価格になります。
2) Limited Connectionサーバライセンスは同時接続数です。 Processor数には依存しません。

代理店で購入可能ですか?

弊社から販売、代理店を通しての販売どちらも行っております。

サポートの回数に制限はありますか?

回数に制限はありません。

製品のバージョンアップの際には別途料金はかかりますか?

サポート期間内の場合、無償でバージョンアップをお客様自身で行うことができます。
また、弊社でもバージョンアップ作業(有償)を行っています。

導入支援は行っていますか?

別料金となりますが、弊社にて設計、インストール、設定を行います。

保守費用について教えてください。

年間保守費用はライセンス価格の 20% となっており、初年度は必須です。

評価中のサポートは受けられますか?

無償でご利用いただけます。
質問の内容により、お時間を頂く場合がございます。予めご了承ください。

評価版に機能制限はありますか?

評価版に機能制限はありません。

 

評価版のお申込みはコチラ

電話サポートは24時間対応ですか?

弊社営業時間内(10:00~18:00)となります。

 

プロダクションサポートの場合、
弊社営業時間外はメーカーの英語サポートのみとなります。

クライアント版はWindows Server上で使用できますか?

できません。Windows XP/Vista/7でのみで使用可能です。WindowsServer上で稼働させる場合は「サーバ版」が必要となります。

サーバライセンスはどの様になっていますか?

サーバライセンスは同時接続(アプリケーション・サーバとDB2サーバ間)の数または無制限接続の両方があります。

サーバライセンスの同時接続数制限版はどの様にライセンスされますか?

プロセッサ数には依存しませんが、同時接続数が5, 10, 25等に制限されます。

無制限接続のサーバライセンスはどの様にライセンスされますか?

無制限接続のサーバライセンスはアップリケーション・サーバのプロセッサ数に依存します。

開発者(ディベロッパ)・エディションはどの様な製品ですか?

開発者エディションはサンプル・ソースコード・コードが含まれ、自社アプリケーションに組み込む権利を有します。

ODBCとOLEDBは64ビットWindows をサポートしますか?

はい、64ビット版を準備しています。

HiT ODBC/400とIBM Client Accessを比較した時のパフォーマンスは?

Client AccessはClient Access機能(ODBC, Terminal Emulatorなど)を使用した最初の時のみ認証によって接続時間を最適化する一方、HiT ODBC/400は、結果セット検索時間を最適化します。

結果として小さなテーブル(検索時間が非常に短くなる。)を使用している場合は接続認証が一回のみ行われるので、Client Accessを使用した方がパホーマンスの向上が見れます。しかし3000レコード以上の大きなテーブルで結果セットを使用する場合は結果セット検索時間では HiT ODBC/400の方がClient Accessよりパフォーマンスは優れています。

またHiTのDB2ワイアー・プロトコール・ドライバはDB2クライント・ライブラリを必要としないため、直接DB2サーバに接続するためにコミュニケーション・オーバが無く、アプリケーション・パフォーマンスを非常に向上させます。

 

HiT OLEDB と HiT ODBCのパフォーマンスを向上させる方法は?

いくつかの手法があります。

1.ユニーク・インデックス
もし、AS/400のファイルがユニーク・インデックスであれば、パフォーマンスは改善されます。特に大きなテーブルからデータをselectしたり、同じクエリでいくつかのテーブルをJOINする場合です。その場合はファイルにプライマリ・キーを設定し、CREATE UNIQUE INDEXを1度だけ稼動させます。

2.ストアード・プロシージャ
AS/400に送るクエリがいつも同じで、アプリケーションが同じステートメントのクエリを何度も繰り返し、いくつかのパラメータを変更しているのみの場合はAS/400のストアード・プロシージャにそれらのステートメント・クエリをストアしていくつかのSELECT, INSERT, UPDATEなどの代わりに1つのCALLを発行します。

3.カーサ
ADOを使用してVisual BasicやASP/VBSのアプリケーションを開発しているときはConnection や Recordsetオブジェクト用にカーサ・ロケーション・プロパティ設定を選択することができます。

4.パラメトリック・クエリ
パフォーマンスでもっとも重要な要素はパラメトリック・クエリを使用することです。パラメトリック・クエリは「テンプレート・クエリ」として説明されることがあり、同じ規模の大きいテーブルで何度の実行できるクエリです。パラメトリック・クエリは一度準備をすることで、パラメータをパスすることで何度も実行することができます。これによりサーバにその都度送られるオーバーヘッドを削減し、「実行可能なフォーマット」でのクエリにコンパイルし、リクエストにてきせつに応じるためにデータをメモリ・スペースにアロケートし、アクセス・パスを準備します。

詳しくは:http://www.hitsw.com/support/kbase/optimization/Performance_OLEDBandODBC.htm

ODBCで日本語が文字化けします。

日本語文字化けが発生する場合、CCSIDに問題がある場合がほとんどです。
まずは、ODBC設定画面にて、Host Code Pageが「5026」または「5035」であるかどうかをご確認ください。
もしAS/400側で日本語文字を扱っているCCSIDが1027などの本来シングルバイト用のフィールドの場合は、ODBC設定画面にて、「Use Host Code Page to override column CCSIDs」にチェックを入れてください。これはフィールドのCCSIDを「Host Code Page」のものに変換する機能です。

[HiT][HiT ODBC/400][SQL/400][ODBS Error][SQL0010]エラーが発生します。

以下をご確認ください。
・SQLクエリの最後のセミコロン”;”を削除してください。
・SQLクエリで2バイト文字を扱う箇所は、パラメータSQLを使用してください。

ExcelやAccessから、設定したODBCを呼出す事ができません。

ODBCとExcel/Accessはともに32bitもしくは64bitかで一致されている必要があります。
例えば、ODBC64bit版をご利用いただく場合は、Excel/Accessも64bit版が必要です。ただし、Excel/Accessの64bit版はOffice2010からの対応になっておりますので、Office2007以前の場合はODBCの32bit版をご利用ください。OSが64bitの場合でも32bit版のODBCは問題なく動作いたします。