約 1,431,713 件
https://w.atwiki.jp/setechdiv/pages/47.html
目次 ODBC ODBCリンク パススルー ODBCリンクとパススルーのメリデメ 概要 ODBC【Open DataBase Connectivity】 Microsoft社によって提唱された、データベースにアクセスするためのソフトウェアの標準仕様。 各データベースの違いはODBCドライバによって吸収されるため、ユーザはODBCに定められた手順に従ってプログラムを書けば、 接続先のデータベースがどのようなデータベース管理システムに管理されているか意識することなくアクセスできる。 (FROM IT用語辞典e-Words) RDBMSに接続するための、共通インターフェース。 マイクロソフト社が1992年に発表した。 Accessはスタンドアローン型のDBMSである。 クライアント/サーバ型のDBMSではないため、外部のデータベースに接続するときに、 ODBCに則って接続する必要がある?? コンパネの[管理ツール]-[データソース(ODBC)]から設定が行える。 これの[ドライバ]タブでそれぞれのプログラムのドライバが設定されているので、 [ユーザDSN]とか[システムDSN]とかで登録したデータソースに楽に接続できるのだ! ユーザDSNとシステムDSNの違い ユーザDSN・・・同一コンピュータ内の1人のユーザだけが使用できる システムDSN・・同一コンピュータ内のアドミニ権限ユーザ全員でDSNを共有できる パススルークエリ【pass-through query】 ODBC データベース サーバーに直接コマンドを送るときに使う SQL クエリ。 パススルー クエリを使用する場合は、Access データベース エンジンでデータを処理する代わりに、 サーバーのテーブルで直接作業します。 ODBCリンクとパススルーのメリデメ ODBCリンクは、Accessにまるっとテーブルを持ってくるため、 クエリデザインでクエリを作成するなど、Accessの特性を生かした操作が可能。 リンク先ODBCのSQL方言などを気にする必要がない。 パススルークエリは、投げた先のDBMSでクエリの実行が行われるため、 データ件数が膨大なテーブルの検索などで処理速度が速い。 .
https://w.atwiki.jp/ma-100140/pages/52.html
unixODBCの設定 DB2(UDB) CentOS release 4.8 (Final) SQL Server 以前からSQLServerをLinuxサーバーからアクセスしたいとは思っていましたが、なかなかうまくいかない。 まずはFreeTDSをインストール。インストールできたのだが、設定がうまくいかない。 ./tsql -S main -U uid Password locale is "ja_JP.eucJP" locale charset is "EUC-JP" using default charset "UTF-8" Error 20009 (severity 9) Unable to connect Adaptive Server is unavailable or does not exist OS error 111, "接続を拒否されました" There was a problem connecting to the server http //www.freetds.org/userguide/confirminstall.htm を見るとなにやら設定を確かめる方法が記載してある。さっそく確かめよう。 ./tsql -LH 192.168.2.51 ServerName myServerName InstanceName SQLEXPRESS IsClustered No Version 10.50.4000.0 tcp 52225 おお。なんとポートが違う1433じゃない。では設定を変えよう。 なお、設定ファイルは以下のコマンドで確認できる。 ./tsql -C Compile-time settings (established with the "configure" script) Version freetds v0.91.100 freetds.conf directory /usr/local/freetdsetc MS db-lib source compatibility no Sybase binary compatibility no Thread safety yes iconv library yes TDS version 5.0 iODBC no unixodbc yes SSPI "trusted" logins no Kerberos no 設定は以下 cat freetds.conf [main] host = 192.168.2.51 instance = SQLEXPRESS port = 52225 tds version = 7.3 ## ##SQL Server2005は7.2 2008は7.3 2012は7.4 client charset = UTF-8 ##Client(Linux)側の文字コードセット では、もう一度実行してみる。 /tsql -S main -U uid Password locale is "ja_JP.eucJP" locale charset is "EUC-JP" using default charset "UTF-8" Error 20017 (severity 9) Unexpected EOF from the server OS error 115, "現在処理中の操作です" Error 20002 (severity 9) Adaptive Server connection failed There was a problem connecting to the server まだ、エラーですねぇ。 そう言えば、SQL Serverは2008R2だったなぁ。2008は7.3で2012が7.4か、R2はどこだろう? 仕方がない、tds versionを小刻みに変えてみよう。まずは8.0 ./tsql -S main -U uid Password locale is "ja_JP.eucJP" locale charset is "EUC-JP" using default charset "UTF-8" 1 ビンゴ!! 8.0でOKです。 やっとつながった。 ではPHPから読んでみよう。 手動で確認するなら、tsqlで対話型でも悪くはない。しかし、シェスクリプトの中で使って 自動化したい。そうすると、コマンドライン版のPHPで行うのがいいでしょう。 PHPからFreeTDSにつなぐ。DB2でも使ったunixODBC経由がすでにあるDB2読み込み用PHPを使えるので便利だろう。 まずは、unixODBCに設定を追加しよう。 /usr/local/etc/odbcinst.iniにFreeTDSの設定を追加 [FreeTDS] Description = FreeTDS Driver Driver = /usr/local/freetds/lib/libtdsodbc.so Setup = /usr/local/freetds/lib/libtdsodbc.so FileUsage = 1 CPTimeout = 5 CPReuse = 5 /usr/local/etc/odbc.ini [SQLServer] Driver = FreeTDS Protocol=TCPIP Servername = main Port = 52225 System = 192.168.2.51 UserID = uid Password = pass Database = mydb /usr/local/bin/isql -v SQLServer uid pass +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL やっとつながった。 次へ phpからFreeTDSにつなぐ
https://w.atwiki.jp/wiki5_hks/pages/95.html
R での外部データファイル読込 Excel (クリップボード経由) Excel (ODBC 経由) Access (ODBC 経由) SAS (XPT 形式) # Excel 上でデータ範囲(ヘッダの変数名の行も含む)をコピーしてから data - read.delim( clipboard , header=T) # ODBC 経由で Excel データ読込 library(RODBC) # RODBC パッケージ # cn - odbcConnectExcel( d /data.xls ) # Excel ファイルに接続 sqlTables(cn) # シート名を表示 data.xls - sqlQuery(cn, select * from [sheet1$] ) # SQL で読込 odbcClose(cn) # 接続開放 # ODBC 経由で Access データ読込 library(RODBC) # RODBC パッケージ # cn - odbcConnectAccess( d /data.mdb ) # Access ファイルに接続 sqlTables(cn) # テーブル名を表示 data.mdb - sqlQuery(cn, select * from [T_1] ) # SQL で読込 odbcClose(cn) # 接続開放 # SAS XPT 形式ファイルの読込 library(foreign) # foreign パッケージ data - read.xport( data.xpt ) # 読込
https://w.atwiki.jp/takehara/pages/5.html
ODBC DSNの自動作成(WSH) 【ta.oohahsi 20050921】 ODBCのシステムDSN(データソースネーム)の参照と作成方法を記します。 C/S(クライアント/サーバ)方式のDBMSで、ADOやoo4oなどのミドルウェアオブジェクトが主流になりつつありますが、 現役で動作しているミドルウェアでは、ODBCが多いのではないでしょうか。 ODBCは、現在、以下の3つの形態があります。 ・ユーザDSN・・・・・ログイン名ごとに作成される。レジストリのHKEY_CURRENT_USER\Software\ODBC\odbc.iniに作成される。 ・システムDSN・・・・・パソコンごとに作成される。レジストリのHKEY_LOCAL_MACHINE\Software\ODBC\odbc.iniに作成される。 ・ファイルDSN・・・・・拡張子dsnのファイルとして作成される。 複数人で、同じ内容のDSNを使用する場合は、ファイルDSNを使用します。 ただし、ファイルDSNはODBC3からサポートされたので、ODBCドライバが、3以上でないと、ファイルDSNを使用できません。 一般的に使用されるのは、システムDSNが多いと思います。 そこでプログラムにシステムDSNを作成するモジュールを組み込めば、同じ内容のDSNを複数人が使用できます。 システムDSNの作成方法は、いろいろありますが、ここでは、ODBCのAPI関数を使用します。 ******************************************* Const HKEY_LOCAL_MACHINE = H80000002 設定PC名 strComputer = "." Set objReg=GetObject("winmgmts {impersonationLevel=impersonate}!\\" _ strComputer "\root\default StdRegProv") strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" DSN名 strValueName = "ScriptR" 接続ドライバの指定 strValue = "SQL Server" objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository" strKeyPath = "SOFTWARE\ODBC\ODBC.INI\" + strValueName objReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository" strKeyPath = "SOFTWARE\ODBC\ODBC.INI\" + strValueName DB名 strValueName = "Database" strValue = "master" objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue ドライバ名(SQL Serverを指定) strValueName = "Driver" strValue = "C \WINDOWS\System32\SQLSRV32.dll" objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue 接続先サーバ名 strValueName = "Server" strValue = "(local)" objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue NT認証ON(SQL認証の場合は以下の項目をコメントアウト) strValueName = "Trusted_Connection" strValue = "Yes" objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue ******************************************* 参考 ■[[MicrosoftTechNet Hey,Scripting Guy! http //www.microsoft.com/japan/technet/prodtechnol/windows2000serv/technologies/iis/maintain/optimize/autoadm2.mspx]]
https://w.atwiki.jp/yohshimo/pages/22.html
困ってること 難しい 回帰木のあたりを理解するのに、すごく時間がかかりそうだ。 出来次第、アップ。 p107、「女性の」既婚者が購入するというルールが出来上がっています。これって「男性の」の間違いじゃないか?もうちょっと勉強します・・・。 EXCELのデータを読み込み Rのパッケージ「RODBC」を用いた、EXCELデータの読み込み 以下、RのEXCELデータ読み込みコマンド ### Excel ファイルからデータフレームを作成する例 library(RODBC) # パッケージの呼出 tmp - odbcConnectExcel("c /data00.xls") # データベースに接続(ここまでは多分OK☆) sqlTables(tmp) # テーブルを表示 ( x - sqlQuery(tmp, "select * from [Sheet1$]") ) # 読み込み(ここでエラー) odbcClose(tmp) # 作業後は接続を遮断 何が間違っているか探さないと・・・ 名前 コメント
https://w.atwiki.jp/kplus/pages/49.html
Sub test() Dim con As ADODB.ConnectionDim rs As ADODB.Recordset Connection生成と接続文字列の設定Set con = New ADODB.Connectioncon.ConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=C \test.db" sqliteに接続con.Open select文発行Set rs = con.Execute("SELECT id,name FROM user;") 結果をセルに書き込むrs.MoveFirsti = 1Do Until rs.EOF = True Cells(i, 1).Value = rs.Fields(0).Value Cells(i, 2).Value = rs.Fields(1).Value rs.MoveNext i = i + 1Loop 接続を閉じるcon.CloseSet con = Nothing End Sub [参考元] Sqliteに接続@Excelマクロ・VBAのお勉強 http //www.cocoaliz.com/excelVBA/index/61/
https://w.atwiki.jp/sevenlives/pages/1515.html
JDBCドライバ? JDBCドライバ・マネージャ? MySQL Connector/J? ODBC? OCI?
https://w.atwiki.jp/sampleisbest/pages/97.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 コンソール アプリケーション プロジェクト名 odbctest アプリケーションの種類 コンソール アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode 参考 データベースとODBC odbcdrv.c #include fcntl.h // _O_WTEXT #include io.h // _setmode #include stdio.h // _fileno #include Windows.h #include odbcinst.h #include tchar.h int main() { _TCHAR buf[2048]; LPTSTR p; BOOL b; // BOMなしUTF-16LE _setmode(_fileno(stdout), _O_WTEXT); b = SQLGetInstalledDrivers(buf, _countof(buf), NULL); for (p = buf; *p; p += _tcslen(p) + 1) { _tprintf(_T("{%s}\n"), p); } return 0; } 出力 {SQL Server} {Microsoft Access Driver (*.mdb)} {Microsoft Text Driver (*.txt; *.csv)} {Microsoft Excel Driver (*.xls)} {Microsoft dBase Driver (*.dbf)} {Microsoft Paradox Driver (*.db )} {Microsoft Visual FoxPro Driver} {Microsoft FoxPro VFP Driver (*.dbf)} {Microsoft dBase VFP Driver (*.dbf)} {Microsoft Access-Treiber (*.mdb)} {Microsoft Text-Treiber (*.txt; *.csv)} {Microsoft Excel-Treiber (*.xls)} {Microsoft dBase-Treiber (*.dbf)} {Microsoft Paradox-Treiber (*.db )} {Microsoft Visual FoxPro-Treiber} {Driver do Microsoft Access (*.mdb)} {Driver da Microsoft para arquivos texto (*.txt; *.csv)} {Driver do Microsoft Excel(*.xls)} {Driver do Microsoft dBase (*.dbf)} {Driver do Microsoft Paradox (*.db )} {Driver para o Microsoft Visual FoxPro} {Microsoft ODBC for Oracle}
https://w.atwiki.jp/unispe/pages/26.html
ユーザDNSとシステムDNSの違い
https://w.atwiki.jp/sampleisbest/pages/95.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 コンソール アプリケーション プロジェクト名 odbctest アプリケーションの種類 コンソール アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode 参考 データの取得 郵便番号データダウンロード Text File Driver Programming Considerations odbccsv.c #include fcntl.h // _O_WTEXT #include io.h // _setmode #include stdio.h // _fileno #include Windows.h #include sqlext.h #include tchar.h #define DRIVER _T("Microsoft Text Driver (*.txt; *.csv)") #define DATABASE _T("C \\projects\\vc++\\odbctest") #define TABLE _T("09TOCHIG.CSV") int main() { SQLHENV henv;// 環境 SQLHDBC hdbc;// 接続 SQLHSTMT hstmt;// 命令 SQLSMALLINT col; SQLSMALLINT i; SQLSMALLINT datatype; SQLTCHAR buf[256]; SQLLEN len; SQLRETURN rc;// retcode // BOMなしUTF-16LE _setmode(_fileno(stdout), _O_WTEXT); // データベースへの接続 rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, henv); rc = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc); rc = SQLDriverConnect(hdbc, NULL, (SQLTCHAR *) _T("driver={") DRIVER _T("}; dbq=") DATABASE, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT); if (!SQL_SUCCEEDED(rc)) { return 1; } // 検索 rc = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, hstmt); rc = SQLExecDirect(hstmt, (SQLTCHAR *) _T("select * from ") TABLE, SQL_NTS); if (!SQL_SUCCEEDED(rc)) { return 1; } rc = SQLNumResultCols(hstmt, col); for (i = 1; i = col; i++) { rc = SQLDescribeCol(hstmt, i, buf, _countof(buf), NULL, datatype, NULL, NULL, NULL); _tprintf(_T("%d %s %d\n"), i, buf, datatype); // Text 12 SQL_VARCHAR // Byte -6 SQL_TINYINT } while (1) { rc = SQLFetch(hstmt); if (rc == SQL_NO_DATA) break; if (rc == SQL_ERROR) break; for (i = 1; i = col; i++) { SQLGetData(hstmt, i, SQL_C_TCHAR, buf, _countof(buf), len); _tprintf(_T("%s%c"), buf, (i == col) ? _T( \n ) _T( , )); } } SQLFreeHandle(SQL_HANDLE_STMT, hstmt); // 終了処理 SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); return 0; } schema.ini [09TOCHIG.CSV] ColNameHeader=False Format=CSVDelimited MaxScanRows=25 CharacterSet=OEM Col1=全国地方公共団体コード Text Col2=旧郵便番号 Text Col3=郵便番号 Text Col4=都道府県名カナ Text Col5=市区町村名カナ Text Col6=町域名カナ Text Col7=都道府県名 Text Col8=市区町村名 Text Col9=町域名 Text Col10=一町域が二以上の郵便番号で表される場合の表示 Byte Col11=小字毎に番地が起番されている町域の表示 Byte Col12=丁目を有する町域の場合の表示 Byte Col13=一つの郵便番号で二以上の町域を表す場合の表示 Byte Col14=更新の表示 Byte Col15=変更理由 Byte