Windows7(64)でのODBC接続

コントロールパネル→管理ツールからデータソースを作成しても、繋がらない。

32互換モードのデータソース設定でデータソースを作成する事!!!!
(C:\Windows\SysWOW64\odbcad32.exe)

※どーよーに、CSEとかの接続は上記でつくったDSでしか、検出されなかった。。。

不正な文字コード指定の対処

ページの文字コード設定がx-euc-jpとかになっていると、Mechanizeのフォーム内の
テキストボックスの全角の値は確実にバケる。

対処として、formの親のpageオブジェクトに、文字コードを指定する。
exp.
page.encoding = 'euc-jp'

で、テキストボックスの値は、utf8に変換してセットする

exp
form.field_with(:name=>'hoge').value = 'ほげ'.toutf8

SQLServerでつなげてみる

require 'rubygems'
require 'sequel'
require 'pp'


# 接続パラメータの準備

params = {}
# ADO設定
params[:adapter] = "ado"
params[:provider] = 'SQLOLEDB'
params[:driver] = 'SQL Server'

#接続設定
params[:host] = "localhost"
params[:database] = "#接続DB名#"
params[:user] = '#接続ユーザー#'
params[:password] = '#接続ユーザーパスワード#'

#コネクションプール設定
params[:max_connections] = 10
params[:pool_timeout] = 10

# 接続
db = Sequel.connect(params)

# SQL実行
db['select * from muser'].each{|r| pp r}

# バインド文字列を使用
ds = db[:muser]
pp ds.filter('id like ?' , 'hoge%').all

※シンボルでテーブル名を指定する場合は、DBを作成する時の照合順序を大文字小文字を区別しないに設定する必要がある!!!

SequelがSQLを生成する際、:muserならMUSERに書き換えてしまう為!!!

パッチあてる???

SQLでDataSetを作成する場合、filterによるBind文字指定が出来なかった!!!