24. november 2003 - 17:26Der er
18 kommentarer og 1 løsning
slette fra flere tabeller
jeg et script hvor brugeren kan slette billeder som er blevet uploadet til serveren. derudover har jeg en tabel (som hedder billeder) i min db som holder styr på billedernes placering, og tilføjer et unikt id til hver.
hvordan kan jeg tjekke om et billede som en bruger er ved at slette findes i ex min nyhedstabel, og hvis det gør slette det derfra også (min nyhedstabel har et felt "billede" der indeholder billedets id)
SQL = "Delete * From billeder Where ID = "&ID&"" MyConn.Execute(SQL)
også et eller andet til at tjekke om ID'et findes i nyhedstabellen
...ved ik om det er til at forstå, men ellers må i bare spørge
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg har prøvet flg, men den opdatere ikke i min tilsalg tabel
SQL = "Delete * From billeder Where ID = "&ID&"" MyConn.Execute(SQL)
strPic = ""
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT billede FROM tilsalg where ID ="&ID rs.Open strSQL, MyConn, 1 if not rs.EOF then SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = "&ID MyConn.Execute(SQL) End If
I den ene SQL sætninger bruges Where ID="&ID og i den anden bruges Where billede = "&ID Det skal nok være samme kolonne begge steder. Hvis det er ID så ret denne linje:
SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = "&ID
til: SQL = "Update tilsalg Set billede = '"&strPic&"' Where ID = "&ID
Hvis du bruger Where billede = '"&ID&"'" så vil den overskrive hvor billede = ID'et og billede er sikket enten tom eller lig noget med /images/imga64354.jpg hvorimod ID = ID'et er den kolonne hvor billedet skal ind ;)
arh ok så det som du skal havde ind i tilsalg er billede ID'et på et billede.
Så skal den som SELECT de poster i tilsag hvade ændre ID=ID til billede=ID
strSQL = "SELECT billede FROM tilsalg where Billede='"&ID&"'" rs.Open strSQL, MyConn, 1 if not rs.EOF then SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) End If rs.Close
men jeg har 3-4 tabeller som jeg skal tjekke igennem...skal man gentage den kode hver eneste gang, eller er der en "genvej" istedet for 4x
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT billede FROM tilsalg where Billede='"&ID&"'" rs.Open strSQL, MyConn, 1 if not rs.EOF then SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) End If rs.Close Set rs = Nothing
Du er nød til at "lave" koden 3-4 gange. Man kan ikke gøre det på en gang.
Dog kan du undvære den del som tjekker om billedet findes i tilsalg tabellen men bare lave Update SQL'en da den ikke vil melde fejl hvis den ikke opdater nogle kolonne:
Så kan du lave det som dette:
SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) SQL = "Update XXXX Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) SQL = "Update YYYY Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL)
i øvrigt har jeg lige testet det uden tjekket, og hvis jeg ikke bruger tjekket får jeg flg fejl: ODBC driver does not support the requested properties
men det kan være lige meget...jeg bruger det bare hver gang så
Synes godt om
Ny brugerNybegynder
Din løsning...
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.