28. januar 2004 - 03:16Der er
22 kommentarer og 1 løsning
Vrøvl med forespørgsel
Jeg har en forespørgsel i min access db som virker ca. 3 ud af 4 gange.
Hvis jeg afvikler den flere gange efter hinanden og pludselig siger den:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en ugyldig SQL-sætning. "DELETE", "INSERT", "PROCEDURE","SELECT" eller "UPDATE" var ventet.
Men andre gange virker den fint. Hvis jeg kører SQL'en direkte fra dokumentet virker det hver gang
Min forespørgsel ser således ud: UPDATE tbl_references SET c_Link = [@link], c_LinkText = [@linkText], t_Text = [@text] WHERE u_UID=[@uid];
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Try and write the FULL sql to the screen or a file and make sure it isnt getting changed for some reason. The error indicates that there is an error in SQL so I would concentrate on that!
So you have NO guaranty that the SQL is correct! Just before the SQL gets executed is it not possible to somehow see the FULL SQL? If you cant see the SQL then how do you know it is correct?
Jeg har prøvet at skrive det ud. Når jeg gør det online vil den gerne skrive ud selvom jeg får fejlen. Men kun kaldet af forespørgslen + parametrene. Jeg ved ikke hvordan jeg skal skrive selve SQL'en i forespørgslen ud
jessbonde>Are yousaying that the SQL is NOT CORRECT every time? If so, this confirms that it is NOT Access but something which is happening in you ASP code!
I cant see all of your code so I cant say how to see it. I only know that somewhere in your program you MUST be making some connection to your Access database and SOMEHOW sending the SQL to the database!
Maybe Conn.Execute or something!
It is here, just before you send the SQL to the dB that you can for example use
responce.Write.... so that you can see the SQL!
Who has made the program? If you have made it then you must know where the SQL is performed.
Do you have a query in SQL where you are sending parameters to the dB? Make sure that you close your connection between calls and re-open it!
Man kan åbenbart ikke skrive sql'en fra en forespørgsel ud. Men jeg har fundet ud af at jeg ikke er den eneste der har problemer med UPDATE i access forespørgsler.
"I dont think this isnt"? Jeg er ikke sikker på jeg forstår hvad du mener Lad mig minde dig om at den også crasher når jeg kører det online. SQL'en er rigtig nok. Der sker et eller andet i db'en når jeg kører min update forespørgsel. Hvilke drivere tænker du på?
Jeg har fundet ud af at problemet opstår fordi et af felterne er et notat felt. Jeg har prøvet at opdatere det både først og sidst men det er det samme.
If you think that the problem is because of a memo (notat) field then I suggest you place a question under ASP! I'm not too sure how to write momo fields to an Access database from a WEB application. You have to remember that these fields can hold great amounts of data!
Ikke fordi jeg vil sige dig imod men jeg mener nu det er et database spørgsmål. SQL'en ligger jo internt i databasen og er efter al sansynlighed rigtig. Der må være andre der har haft problemer med at opdatere et notatfelt med en intern forespørgsel.
Som jeg sagde tidligere er der ingen problemer når jeg skriver SQL'en direkte i mit dokument.
jessbonde>I agree that his is a database question but the reason why I suggested you try getting help in ASP is because in Access (Office Access) it is not necessary to use parameter queries to update a memo field. Updating a memo field from an ASP page is different so it is more likely that other people in ASP category will have experienced this problem!
I still havent seen any code as to how you send these paramameters to the Access database but using ADO it is necessary to use AppendChunk to append small parts of a binary file (memo). But again in Access this is NOT necessary so it isnt easy to give help on this!
Her er min funktion der kalder forespørgslen og sender parametre: (jeg har skiftet frem og tilbage mellem kald af forespørgsel og SQL skrevet direkte i dokumentet)
function openDBFront strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("../db/vmcyklen.mdb") Set objConn = server.createObject("ADODB.Connection") objConn.Open strDSN end Function
funktion der eksekverer SQL:
function exec(strSQL) set exec = objConn.execute(strSQL) end function
Det har jeg prøvet, det gør ingen forskel. Som jeg har prøvet at forklare dig, kan jeg ikke skrive selve SQL'en ud, når den kaldes i en forespørgsel. Resultatet vil være: referenceUpdate 'http://test', 'test', 'test', '{D1310D01-1802-4A60-8013-7DBA53AF6957}'
jessbonde>I dont think we seem to be getting ANYWHERE with this question, first you say on ething and then another and as I cant see WHAT you have other than what you write here it isnt easy! So Ithink it best we (I) stop here!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.