icaaqMedlem sedan okt. 20004 910 inlägg
Jag har denna:
[red]
strGetId = "INSERT INTO t_getID(f_tabell)VALUES('"&strSerieNamn&"')"
ObjConn.Execute(strGetId)
Set ObjRS = ObjConn.Execute("Select last_insert_id()")
intLastId = ObjRS(0)
[/red]
Det blir en insert i t_getID men när jag ska hämta det senaste insatta ID´t så får jag noll(0) varför??
Mvh icaaq
PalleMedlem sedan apr. 20002 716 inlägg
Kanske dum fråga.. :OO ..men har du auto_increment i kolumnen?
icaaqMedlem sedan okt. 20004 910 inlägg
Jo det var en dum fråga.....men jag svara jepp på den
PalleMedlem sedan apr. 20002 716 inlägg
Förstog det.. hehe. ;)
Vad kör du med för OPTION i din connectionstring?
Testa med: OPTION=16386;
icaaqMedlem sedan okt. 20004 910 inlägg
QimenMedlem sedan juni 20013 568 inlägg
Har du satt Primary key på id?
PalleMedlem sedan apr. 20002 716 inlägg
MyODBC readme.win skrev:
ADO: 2+16384 (Return matching rows + Change BIGINT to INT)
Du kanske ska testa att byta till option 16386. :)
icaaqMedlem sedan okt. 20004 910 inlägg
Jag får det inte att funka......så här ser det ut nu
[red]
strGetId = "INSERT INTO t_getID(f_tabell)VALUES('"&strSerieNamn&"')"
Set Objconn = Server.CreateObject("ADODB.Connection")
Objconn.ConnectionString = "Provider=MySQLProv;Data Source=x;User Id=x;Password=x; Driver={mySQL};Server=217.78.33.147;Option=16386;Database=x"
Objconn.open
'Response.Write strGetId
ObjConn.Execute(strGetId)
Set ObjRS = ObjConn.Execute("Select last_insert_id() FROM t_getid")
intLastId = ObjRS(0)
[/red]
icaaqMedlem sedan okt. 20004 910 inlägg
Om jag skriver detta i mySQL-Front
[red]
INSERT INTO t_getID(f_tabell)VALUES('icaaq');Select last_insert_id()[/red]
så får jag ut det senaste id:et
PalleMedlem sedan apr. 20002 716 inlägg
icaaq skrev:
ObjConn.Execute("Select last_insert_id() FROM t_getid")
Du ska inte ha med tabell-namnet i din sql-sats utan bara
[red]ObjConn.Execute("Select last_insert_id()")[/red]
Jag har också sett exempel på att man kan använd:
[red]SELECT id FROM tbl WHERE id = last_insert_id()[/red]
..men detta är dock inget som jag har testat själv.
icaaqMedlem sedan okt. 20004 910 inlägg
JAg har nu testat alla sorters förslag.....men allt bara resulterar i 0
Jag använder mig av mySQL 4.0.12
KAnske det kan hjälpa mig??
PalleMedlem sedan apr. 20002 716 inlägg
Synd att inte Aleborg är online, han hade ett liknande problem en gång vet jag.. hade,
om jag inte minns helt fel, med OPTION att göra.. Men jag hittar baske mig inte hans mail. :(
Har du läst i manualen så allt stämmer med datatyperna?
http://www.mysql.com/doc/en/Miscellaneous_functions.html
nikoMedlem sedan juni 20022 415 inlägg
Bara för att öka förvirringen kan jag tala om att det är tvärtom hos mig: Om jag kör frågorna rakt mot MySQL så får jag alltid 0 och om jag kör dem via ADO:n så funkar det (MySQL 3.23.54/ADO2.6).
Men vad är det för märklig connectionstring du kör med? Det är ju en blandning mellan OLEDB och ODBC! Har du provat att välja endera?
"Driver={mySQL};Server=mySrvName;Option=16834;Database=mydatabase;"
Förslagsvis till att börja med.
icaaqMedlem sedan okt. 20004 910 inlägg
niko skrev:
Bara för att öka förvirringen kan jag tala om att det är tvärtom hos mig: Om jag kör frågorna rakt mot MySQL så får jag alltid 0 och om jag kör dem via ADO:n så funkar det (MySQL 3.23.54/ADO2.6).
Men vad är det för märklig connectionstring du kör med? Det är ju en blandning mellan OLEDB och ODBC! Har du provat att välja endera?
"Driver={mySQL};Server=mySrvName;Option=16834;Database=mydatabase;"
Förslagsvis till att börja med.
hur ska den se ut tycker du ?
nikoMedlem sedan juni 20022 415 inlägg
Tja, eftersom du inleder med "Provider=MySQLProv.." så skulle jag tippa att du kör på MyOLEDB och att den ignorerar de felaktiga MyODBC-parametrarna. Prova alltså att ange en ODBC-koppling ungefär som ovan. (Ifall MyOLEDB är buggig.)
icaaqMedlem sedan okt. 20004 910 inlägg
opps såg inte att du redigerade
PalleMedlem sedan apr. 20002 716 inlägg
Jag kör med
[red]Connect.Open "Driver={mySQL};Server=xxx;Option=16386;Database=xxx;Uid=xxx;Pwd=xxx"[/red]
[r] Skum formatering det blir på koden, har den alltid varit så??
icaaqMedlem sedan okt. 20004 910 inlägg
weeeee med den så funkar det
PalleMedlem sedan apr. 20002 716 inlägg
nikoMedlem sedan juni 20022 415 inlägg
Verkar alltså som om MyOLEDB är buggig. Så här står det i manualen (MyOLEDB 3.0):
LAST_INSERT_ID([expr])
Returns the last automatically generated value that was inserted into an AUTO_INCREMENT column.