27. november 2002 - 14:00Der er
17 kommentarer og 1 løsning
SQL Syntaks for Butikker.NetbyNavn LIKE % Netbyer.NetbyID %
Kernen i problematikken synes at være en syntaksfejl (streng-konkatenering) - og måske mere:
<% 'Jeg har asp og Acces db. 'Tabellen og feltet Butikker.FirmaID har feltet med værdien test 'Tabellen og feltet Butikker.NetbyNavn har feltet med værdien halmstad, helsingborg 'Tabellen og feltet Netbyer.NetbyID er en referencetabel for de netbyer der eksisterer og har '18 records, hvor både halmstad og helsingborg findes i hver sin record. 'Jeg vil gerne have at det skal være den første, nemlig halmstad, der starter en popup - og kun én. 'FEJL: 'Der popper kun en alert op, når der kun er en enkel by i feltet. der skal poppe op for den første by der er på listen. de andre er sekundære byer.
Set objConn = server.createobject("ADODB.connection") objConn.open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & server.Mappath("netbydb.mdb") Set objRS = Server.createobject("ADODB.Recordset") 'Recordset oprettes
SQL = " select Butikker.FirmaID, Butikker.NetbyNavn, Netbyer.NetbyID " SQL = SQL & " from Butikker, Netbyer " SQL = SQL & " where Butikker.Aktiv = -1 " SQL = SQL & " and Butikker.NetbyNavn LIKE Netbyer.NetbyID " 'SQL = SQL & " and Butikker.NetbyNavn = Netbyer.NetbyID " 'Denne dur kun ved en enkelt netby i Butikker.NetbyNavn SQL = SQL & " order by dato desc " objRS.open SQL, objConn
do until objRS.EOF
if objRS("FirmaID") = "test1" then Response.write "<script>alert('" & objRS("FirmaID") & "\n" Response.write "Netby: " & objRS("NetbyID") & "\n" Response.write "')</script>" 'exit do end if
objRS.movenext loop objRS.Close %> Jeg kunne forestille mig at løsningen lå i fx det med % tegnene i LIKE. Der skal opsnappes begyndelsen af Butikker.NetbyNavn -strengen:fx(halmstad, helsingborg, goeteborg, svenskeby1, svedskeby, oerestad, osv-stad) Hvis det var VBscript kunne man bare knipse med fingrene. Men der Skal sgu være lignende muligheder -eller bedre med SQL. Jeg vil absolut mene, at lave et felt for hver by er meningsløst, da antal byer skal udviddes hen ad vejen op mod flere hundrede. Eet felt med kommaseparerede byer må være sagen. Selvfølgelig OM nødvendigt i en anden tabel. Men jeg vil gerne keep it simple, og sitet her fungeret efter hensigten lige til det her problem dukkede op..
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
DET lyder mere rigtigt - om i Acces. men jeg har ikke fået det til at virke på den ene eller anden måde: '*Netbyer.NetbyID*' eller 'Netbyer.NetbyID*' osv. Men hvad er så % til for? PS: Netbyer.NetbyID er en strengværdi som halmstad eller halmstad, goeteborg, etc
your problem is that you have to get the contents of whatever Netbyer.NetbyID is, into the string ''
So something like
SQL = SQL & " and Butikker.NetbyNavn LIKE '* & Netbyer.NetbyID & "*'" is ABOUT right, but I dont know much about ASP or where Netbyer.NetbyID is comming from
OK, terry har nok ret at det er noget i den retning. Men jeg har prøvet lidt af hvert i den retning: SQL = SQL & Butikker.NetbyNavn LIKE '%Netbyer.NetbyID%' " - dutter ikke.
para7> I would suggest that you use Access to get your query (SQL) to work, and once it sworking there then it should be a piece of cake to get it working in ASP, thats if you know ASP :o)
Råd fra terry: Jeg afprøvede SQL = SQL & " and Butikker.NetbyNavn LIKE '* & "Halm" & "*'" og senere omskrevet til '%Halm%'". Dette gav 18 popups - een for hver by. SQL blev kreeret via Acces med følgende resultat: Fejltype: Microsoft JET Database Engine (0x80040E21) Der kan ikke joinforbindes med feltet af typen Memo, OLE eller Hyperlink Object (Netbyer.NetbyID=Butikker.NetbyNavn). Ja, felterne er begge af typen memo, ærgerligt, men datamængden i den kommaseparerede streng i Butikker.NetbyNavn kræver det.
Der kan ikke joinforbindes med feltet af typen Memo. Kan man ikke komme om ved det?.. Hvis ingen ser ud til at have en løsning eller tæt på, så jeg lukker spørgsmålet.
para7>We can NOT give you a solution on the design errors in you database, that is another question, which would cost more than 120 points :o) We can only help you on the actual question you placed and you have received an anwer for that, but before you can get it to work you MUST get your database design in place. Its a hard life :o)
para7>Points are given for a correct answer not for a happy customer. You have recieved and answer concernt the LIKE syntax. You have also received information telling you what your porblem is. So I dont understand WHY no points are rewarded, even thoug hthey cant be used for much at all. But dont worry just do NOT expect ANY help in future.
SORRY terry - det var ikke meningen at afvise det sidste svar med linket. Den ser jeg nærmere på. Men speaking on behalf on all the experts here?.. I can offer a few more donuts, no problemo ;o) Men altså det foregår på http://www.eksperten.dk/spm/289027 hvor jeg har ryddet lidt op i tingene. Den her er blevet lidt rodet..
"Points are given for a correct answer not for a happy customer..." Hvor læser man om den slags regler? Jeg vil da gerne opføre mig ordentligt her..
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.