vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| I have written a generic script in asp to add records to a table. The script works fine with one table but in the other tables it updates the first record in the table with the values for the new record and adds a new record with all null values?!? Here is the script: adOpenKeyset=1 adLockOptimistic=3 Set cnnFormToDB = Server.CreateObject("ADODB.Recordset") 'INSERT******************************************* ****************** 'Open connection to sub-table if action = "insert" then cnnFormToDB.Open "SELECT top 1 * FROM " &subtable, "DSN=Barrheadsql;UID=barrhead;PWD=ty93eta", adOpenKeyset,adLockOptimistic cnnFormToDB.AddNew else cnnFormToDB.Open "SELECT top 1 * FROM " & subtable & " WHERE ID = " & ID, "DSN=Barrheadsql;UID=barrhead;PWD=ty93eta", adOpenKeyset, adLockOptimistic End If if not cnnFormToDB.eof then cnnFormToDB.MoveFirst end if 'DELETE******************************************* ******************** if action = "delete" then cnnFormToDB.Delete cnnFormToDB.Close else 'Build 2nd SQL String For i=0 To Ubound(aFields) cnnFormToDB(aFields(i)) = aValues(i) Next 'Insert record into sub-table cnnFormToDB.Update The even weirder thing is I know that values in aFields and aValues are OK because this test script I wrote for one of the tables works just fine: adOpenKeyset=1 adLockOptimistic=3 Set cnnFormToDB = Server.CreateObject("ADODB.Recordset") cnnFormToDB.Open "SELECT top 1 * FROM FlightsDirect", "DSN=Barrheadsql;UID=barrhead;PWD=ty93eta", adOpenKeyset, adLockOptimistic cnnFormToDB.AddNew cnnFormToDB("fkCity") = 198 cnnFormToDB("fkDepartureAirport") = 159 cnnFormToDB("ValidFrom") = "17/09/2003" cnnFormToDB("ValidTo") = "15/10/2003" cnnFormToDB("fkType") = 1 cnnFormToDB("ReturnFlight") = 1 cnnFormToDB("fkReturnAirport") = 184 cnnFormToDB("Price") = yyyyyy cnnFormToDB("fkATOL") = 5346 cnnFormToDB.Update Any suggestions appreciated Thanks Alison |
| ||||
| Buttercup (alison_clark20@hotmail.com) writes: > I have written a generic script in asp to add records to a table. The > script works fine with one table but in the other tables it updates > the first record in the table with the values for the new record and > adds a new record with all null values?!? Here is the script: I cannot really say what is going on. The problem with ADO is that while it tries to hides to the SQL from you, it does actually makes you more confused, because you don't know what is going on under the covers. You can use the Profiler to see what ADO submits to SQL Server. However, rather than relying on ADO doing things right by chance, I would encourage you to use stored procedures instead. Then you don't use these .AddNew or .Update methods. -- Erland Sommarskog, SQL Server MVP, sommar@algonet.se Books Online for SQL Server SP3 at http://www.microsoft.com/sql/techinf...2000/books.asp |