2010-11-29 5 views
4

私は、次のコードを使用してMS Accessテーブルを作成:アクセステキストフィールドの一意のインデックスは、常に大文字小文字を区別しますか?

tbl := Database.CreateTableDef('English', 0, '', ''); 
    try 
    fld := tbl.CreateField('ID', dbLong, 0); 
    fld.Attributes := dbAutoIncrField + dbFixedField; 
    tbl.Fields.Append(fld); 

    fld := tbl.CreateField('Content', dbText, 255); 
    fld.Required := true; 
    fld.AllowZeroLength := false; 
    tbl.Fields.Append(fld); 

    Database.TableDefs.Append(tbl); 

    idx := tbl.CreateIndex('PrimaryKey'); 
    idx.Fields.Append(idx.CreateField('ID', EmptyParam, EmptyParam)); 
    idx.Primary := True; 
    idx.Unique := true; 
    tbl.Indexes.Append(idx); 

    idx := tbl.CreateIndex('IX_Content'); 
    idx.Fields.Append(idx.CreateField('Content', EmptyParam, EmptyParam)); 
    idx.Primary := false; 
    idx.Unique := true; 
    tbl.Indexes.Append(idx); 
    finally 
    tbl := nil; 
    end; 

私は、この表の中に二つの文字列「フィールドタイプ」と「フィールドタイプ」を挿入しようとするまで、これが正常に動作します。私はユニークなインデックスが私にそれをさせるのを制限すると私に言っている間違いを得る。あなたが見ることができるように、それらは2番目の単語の場合のみ異なっています。私は明示的にインデックスを大文字小文字を区別しないようにしていないので(私はそれを行う方法も知らないだろう)、なぜこれが起こるのかは分かりません。テキストフィールドのインデックスは、MS Accessでは常に大文字と小文字を区別しますか?そうでない場合、私は何を間違っているのですか?

答えて

5

アクセスJetデータベースは、基本的に大文字と小文字を区別しません。それがあなたの問題です。私が知る限り、Accessインデックスを大文字と小文字を区別する方法はありません。

+1

私はすでに答えを読んだ後、私はすでに何時間も解決策を見つけようとしていたので、奇妙なことにインターネットで言及されていることが分かりました。ちょうどGoogleを使用することはあまりにも幸運を必要とすることを証明します。 – dummzeuch

関連する問題