2012-02-29 112 views
0

我想问如何使用javascript ADODB.Recordset对象执行插入语句? 谢谢先进的Tal。在Javascript中使用插入语句使用ADODB.Recordset

这是我试图运行代码:

/* Getting access to the database */ 
var connection = new ActiveXObject("ADODB.Connection"); 
var connectionstring = "Data Source=srvp7rnd-herm;Initial Catalog=hermes;User ID=hermes;Password=hermes;Provider=SQLOLEDB"; 
connection.Open(connectionstring); 

/* JavaScript obect to access a SQL query's results */ 
var rs = new ActiveXObject("ADODB.Recordset"); 

/* Getting the current MAX(id) from the database */ 
rs.Open("SELECT MAX(id) FROM Screen_Template", connection); 
rs.MoveFirst; 
var maxID = rs.Fields.Item(0); 
maxID = maxID + 1; 

/* TODO: Get the last UID */ 
var sql = "INSERT INTO Screen_Template(template_name, OpCo, env, template_xml, language, id, title, role, UID) VALUES (" + templateName + "," + opco + "," + env + "," + "<hello>hello</hello>" + ",eng," + maxID + ",Hermes SMS message composer," + "manag, 10)"; 
alert(sql); 
rs.Open(sql, connection); 

/* Closing the connections */ 
rs.close; 
connection.close; 

但是,当我试图运行的代码,它给了我一个错误信息。

回答

1

请使用此代码尝试。如果Screen_Template列类型是Varchar,则必须将“'”附加到变量中。如果来自alert(sql)的SQL语句与您的Table Schema格式正确,应该没问题。希望这个帮助。

/* Getting access to the database */ 
    var connection = new ActiveXObject("ADODB.Connection"); 
    var connectionstring = "Data Source=srvp7rnd-herm;Initial Catalog=hermes;User ID=hermes;Password=hermes;Provider=SQLOLEDB"; 
    connection.Open(connectionstring); 

    /* JavaScript obect to access a SQL query's results */ 
    var rs = new ActiveXObject("ADODB.Recordset"); 

    /* Getting the current MAX(id) from the database */ 
    rs.Open("SELECT MAX(id) FROM Screen_Template", connection); 
    rs.MoveFirst; 
    var maxID = rs.Fields.Item(0); 
    maxID = maxID + 1; 
    rs.close; 

    /* TODO: Get the last UID */ 
    var sql = "INSERT INTO Screen_Template(template_name, OpCo, env, template_xml, language, id, title, role, UID) VALUES ('" + templateName + "','" + opco + "','" + env + "'," +"'<hello>hello</hello>'" + ",'eng'," + maxID + ",'Hermes SMS message composer'," + "'manag', 10)"; 
    alert(sql); 
    rs.Open(sql, connection); 

    /* Closing the connections */ 
    //rs.close; 
    connection.close;