レプリケーション(GUID)型、OLE オブジェクト型、ハイパーリンク型。
DAOでは十進型の小数点以下桁数が取得する方法がわからないため、この部分だけADOXで取得しています。(1.0.1)
ACCESSの識別子をLCase関数で小文字化する以外の措置をしていませんので、postgresqlで識別子に使えない名前のテーブル名や列名がテーブル定義SQL文に出力される可能性があります。
気合のある人は、VBScript.RegExpでも使ってCPostgresConverterクラスのCheckIdentifier()を改造してください。
ACCESSのFieldオブジェクトのvalidationRuleプロパティとdefaultValueプロパティの内容をほぼそのままCHECK制約、DEFAULTに持ってきているので、>0のようなごく単純な式以外は、無効な式になっている可能性が高いです。
もっときっちりと変換したい人は、CPostgresConverterクラスのGetpgDefault()とGetpgCheck()を改造してください。
serialに変換します。(1.0.4)
setval()でSEQUENCEをオートナンバー型フィールドの最大値+1に設定する文を出力します。
素直にinteger型に変換したい場合は、CPostgresConverterクラスのGetpgFieldType()の該当部分を修正します。
ACCESSに日付型、時刻型がないので、date型、time型が適切な列でも下記のルールでdate型かtime型に割り当てられなければtimestamp型になります。
日付時刻型の型変換ルールを変更したい場合は、CPostgresConverterクラスのGetpgFieldTypeの該当部分を修正します。
※レコードの更新日時列を他者変更の確認に使う用途を考えると、VBAで扱えないtimestampよりもtimestamp(0)に変換するのが正解にも思える。
TOPに戻る