2012-01-24 9 views
0

私は何が間違っているのか分かりません。ここでは、アクセスデータベースを照会しているJavaScriptコードをいくつか紹介します。すべてのRS.fields [i]は未定義ですが、正しい数の行が返されます。これを引き起こす原因は何ですか?すべての結果はアクセスデータベースから未定義です

adOpenForwardOnly = 0; 
adLockReadOnly = 1; 
adCmdText = 1; 
var data = new Array(); 
var myConnect = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\asdf.mdb'; 

var ConnectObj = new ActiveXObject('ADODB.Connection'); 
var RS = new ActiveXObject('ADODB.Recordset'); 
var sql = 'SELECT * FROM TTT WHERE XXX = "'+xxx+'" AND YYY = "'+yyy+'" AND ZZZ = '+zzz+' AND AAA = "'+aaa+'" AND BBB = #'+bbb+'# '; 
//alert(sql); 
ConnectObj.Open(myConnect); 
RS.Open(sql, ConnectObj); 

RS.MoveFirst(); 
while(!RS.eof){ 
    data.push(new FFFRow( 
        'a', 
        parseFloat(RS.fields[1]), 
        new String(RS.fields[8]), 
        GetDateFromString(RS.fields[9]), 
        GetDateFromString(RS.fields[10]), 
        GetDateFromString(RS.fields[4]), 
        GetDateFromString(RS.fields[12]), 
        parseFloat(RS.fields[13]), 
        parseFloat(RS.fields[14]), 
        new String(RS.fields[15]), 
        parseFloat(RS.fields[16]), 
        parseFloat(RS.fields[17]), 
        parseFloat(RS.fields[18]), 
        parseFloat(RS.fields[19]), 
        '', 
        '', 
        parseFloat(RS.fields[0]), 
        new String(RS.fields[3]), 
        new String(RS.fields[2]) 
       ) 
      ); 

    RS.MoveNext(); 
} 
+1

SQLステートメントをつかみ、それをMS Accessの新しいクエリに直接貼り付けてください。 –

+0

私はこれをやってきましたし、クエリはアクセスでうまく動作します。私は行の正しい数を取得しているので、それは本当に奇妙ですが、すべてが定義されていません – sooprise

+0

出力RS.fields [1] .nameは、列名を取得するかどうか参照してください。または、RS = ConnectObj.Execute(sql)を設定します。 RS.openの代わりに。 –

答えて

1

これを試してください:

RS.Fields.Item(1) 

注、フィールドがキャップである、項目はキャップであり、それは関数呼び出しではない配列の参照です。

+0

仕事、私はこの結論に到着した。まあ、それほど重要でない何かを見つけるために私を長らく取った:(ありがとう:) – sooprise

関連する問題