0
我正在使用Javascript和Internet Explorer的ActiveXObjects連接到SQL數據庫。我可以從一張表中讀出結果,而不會出現問題。不幸的是,我無法弄清楚連接兩個在同一個數據庫中的表的語法。這就是我想要的:如何在Internet Explorer中使用javascript和ADO連接兩個SQL表
//create object
var conn = new ActiveXObject("ADODB.Connection");
//store credentials
var connectionstring = "Provider=sqloledb; Data Source={omitted}; Initial Catalog={omitted}; User ID={omitted};Password={omitted}";
//open the db connection with credentials
conn.Open(connectionstring);
//create a new record set
var rs = new ActiveXObject("ADODB.Recordset");
//search the record set with SQL call
rs.Open("SELECT * FROM [order] INNER JOIN OrderItems ON (order.Id = OrderItems.Id)", conn);
如果我刪除「INNER JOIN」及其後的所有內容,我很好。請注意,因爲我認爲它是一個受保護的關鍵字,所以我必須在第一個表名(「order」)中加上括號......任何人都知道Javascript中這種事情的正確語法?
*「任何人都知道這種事情在Javascript中的正確語法?」*這與JavaScript無關,它是ADO。如果它不工作,你應該得到一個異常,並指出*爲什麼*它不起作用。例如,'select *'表示「返回所有列」,並且這些表中至少有一個列名衝突(它們都有'Id'列),所以它可以像這樣簡單。嘗試給出表別名並僅請求實際需要的列,例如'select o.foo,oi.bar from [order] o inner join [OrderItems] oi on [order]。[Id] = [OrderItems]。[Id]'。 –
謝謝TJ。你說得對,我以前得到一個錯誤。我忘了發佈...它說:關鍵字'訂單'附近的語法不正確。現在,我試着這樣: ** rs.Open(「SELECT o.Id FROM [order] o INNER JOIN [OrderItems] oi ON [order]。[Id] = [OrderItems]。[Id]」,conn ); ** 並得到以下內容: 無法綁定多部分標識符「order.Id」。 – Fred