01. juli 2004 - 12:04Der er
20 kommentarer og 1 løsning
simpelt SQL-UPDATE spg
Er det muligt i en update-sætning at sige hvis ikke denne bruger findes skal denne oprettes og der skal lægges de her 3 oplysninger ind til ham. Ellers skal hans oplysninger blot opdateres.
Eller skal man virklig skrive forskellige adskilte SQL-forespørgsler og checke på recordcount osv?
Jeg ved ikke om funktionaliteten er "overført" - men I MS Access kan man lave en UPDATE med RIGHT JOIN, som så opdaterer eksisterende poster og tilføjer nye...
UPDATE Distrikter AS D RIGHT JOIN USysTemp_Distrikter AS U ON D.DisID=U.DisID SET D.DisID=U.DisID, D.Distrikt=U.Distrikt, D.Opdateret=Date(), D.Person=U.Person
Må jeg ikke lige spørge om noget sidste...Det er nok mest dig arne. Ville lige høre om du kan se hvad jeg gør galt her: stiId er en char[1000] ComputerName er i accessbasen en text Der kommer en addresseringsfejl. Den prøver at addressere 0xffffffff og det sker i denne sætning: stat = SQLFetch(stmt); i while løkken SQL=(string)"SELECT ComputerName FROM Computers WHERE ComputerName ='"+CompName+"'"; stat = SQLExecDirect(stmt,(SQLCHAR *)SQL.c_str(),SQL.length()); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) {printf("Error in stSql %i og %i\n",stat,SQL_INVALID_HANDLE);} printf("stat:%i,succes:%i",stat,SQL_SUCCESS); stat = SQLBindCol(stmt,1,SQL_C_CHAR,&stiId,sizeof(stiId),(SQLINTEGER *)SQL_NTS); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) printf("Error in BindCol\n"); printf("stat:%i",stat); while(true) { printf("sql: %s\n",SQL.c_str()); stat = SQLFetch(stmt);
SQL_NTS. A string sent to the driver in the corresponding data buffer is null-terminated; this is a convenient way for C programmers to pass strings without having to calculate their byte length. This value is legal only when the application sends data to the driver. When the driver returns data to the application, it always returns the actual byte length of the data.
Så du bliver nødt til at give adressen på en integer.
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.