| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Hvorfor mon? Fra : Gert Simonsen | 
  Dato :  24-04-04 08:52 |  
  |   
            Hejsa.
 
 Jeg forstår ikke.....
 Jeg har nedenstående kode, hvis jeg i "tekst" feltet skriver et "ping" f.eks
 Gert's så vil den ikke sætte det ind i databasen.
 Hvis jeg skriver uden ' så er der ingen problemer.
 Jeg har desværre ingen fejlkode, da der blot bliver skrevet:
       Siden kan ikke vises
       Der er problemer med den side, du prøver at åbne, og den kan ikke
 vises.
 
 Er der nogen der kan hjælpe mig...?
 
 Hilsen Gert Simonsen
 
 <%
 
 Set Conn = Server.CreateObject("ADODB.Connection")
 Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
 server.MapPath("fpdb/bagterplogbog.mdb")
 
 dato = now()
 id= request.Form("brugerid")
 SQLstmt = "INSERT INTO logbog (tekst,brugerid,dag,mnd,year,dato)"
 SQLstmt = SQLstmt & " VALUES ('" & request.Form("tekst") & "','" &
 request.Form("brugerid") & "'," & day(dato) & "," & month(dato) & "," &
 year(dato) & ",#" & Date() & "#)"
 'Response.Write SQLstmt
 Conn.Execute (SQLstmt)
 
 Response.Redirect "se_log1.asp?brugernavn="&id
 %>
 
 
  
            
             |   |   
            
        
 
            
         
           finn elmgaard (24-04-2004) 
         
	
            | Kommentar Fra : finn elmgaard | 
  Dato :  24-04-04 10:00 |  
  |   
            ----- Original Message ----- 
 From: "Gert Simonsen" <gert@FJERNESmallin.dk>
 > Jeg har nedenstående kode, hvis jeg i "tekst" feltet skriver et "ping"
 f.eks
 > Gert's så vil den ikke sætte det ind i databasen.
 > Hvis jeg skriver uden ' så er der ingen problemer.
 > Jeg har desværre ingen fejlkode, da der blot bliver skrevet:
 >       Siden kan ikke vises
 >       Der er problemer med den side, du prøver at åbne, og den kan ikke
 > vises.
 > Hilsen Gert Simonsen
 >
 > <%
 > dato = now()
 > id= request.Form("brugerid")
 > SQLstmt = "INSERT INTO logbog (tekst,brugerid,dag,mnd,year,dato)"
 > SQLstmt = SQLstmt & " VALUES ('" & request.Form("tekst") & "','" &
 > request.Form("brugerid") & "'," & day(dato) & "," & month(dato) & "," &
 > year(dato) & ",#" & Date() & "#)"
 > 'Response.Write SQLstmt
 > Conn.Execute (SQLstmt)
 >
 > Response.Redirect "se_log1.asp?brugernavn="&id
 > %>
 >
 
 Hvis du benytter dig af muligheden for at udskrive din SQLstmt (du har jo
 koden parat til det, den er blot ping'et ud) vil du se, at det går galt med
 syntaksen p.g.a den ekstra ping.
 
 Iøvrigt: Du lægger din request.Form("brugerid") over i variablen id, så brug
 den i din SQLstmt, det giver en mere overskuelig kode. Tilsvarende kan du
 gøre med request.Form("tekst"), specielt hvis du nu skal til at lave nogle
 check for indtastede ping'er.
 
 mvh
 Finn
 
 
 
  
            
             |   |   
            
        
 
            
         
           Gert Simonsen (24-04-2004) 
         
	
            | Kommentar Fra : Gert Simonsen | 
  Dato :  24-04-04 10:29 |  
  |   
            > Hvis du benytter dig af muligheden for at udskrive din SQLstmt (du har jo
 > koden parat til det, den er blot ping'et ud) vil du se, at det går galt
 med
 > syntaksen p.g.a den ekstra ping.
 Yep - nemlig, men hvordan undgår jeg det, er det virkeligt rigtigt man ikke
 kan skrive en tekst uden "ping"?
 
 > Iøvrigt: Du lægger din request.Form("brugerid") over i variablen id, så
 brug
 > den i din SQLstmt, det giver en mere overskuelig kode. Tilsvarende kan du
 > gøre med request.Form("tekst"), specielt hvis du nu skal til at lave nogle
 > check for indtastede ping'er.
 
 Ups - her går det galt.....med mit 3 dages grundlæggende ASP kursus,
 forrstår jeg ikke rigtig hvad du mener.
 
 Hilsen Gert Simonsen
 
 
  
            
             |   |   
            
        
 
            
         
            Jens B (24-04-2004) 
         
	
            | Kommentar Fra : Jens B | 
  Dato :  24-04-04 12:29 |  
  |   
            
 "Gert Simonsen" <gert@FJERNESmallin.dk> skrev i en meddelelse
 news:408a3396$0$28862$ba624c82@nntp04.dk.telia.net...
 > > Hvis du benytter dig af muligheden for at udskrive din SQLstmt (du har
 jo
 > > koden parat til det, den er blot ping'et ud) vil du se, at det går galt
 > med
 > > syntaksen p.g.a den ekstra ping.
 > Yep - nemlig, men hvordan undgår jeg det, er det virkeligt rigtigt man
 ikke
 > kan skrive en tekst uden "ping"?
 
 Ja det er rigtigt, at man ikke kan indsætte en tekst der indeholder ' .
 Problemet er at ' jo også bruges i ASP kode, og derfor "forvirrer" det
 koden.
 
 Så du skal lave en replace, inden du får scriptet til at indsætte i
 databasen.
 
 F.eks.  Replace(tekst,"'","´")
 
 Eller eventuelt kan du replace med noget unikt, før du sætter ind i
 databasen, da du således kan replace tilbage igen, når du hiver ud af
 databasen.
 
 F.eks. Replace(tekst,"'","[ping]")
 I databasen vil der så komme til at stå gert[ping]s
 Så når du trækker ud kan du lave en Replace(tekst,"[ping]","'")
 
 Jens
 
 
  
            
             |   |   
            
        
 
            
         
             Gert Simonsen (24-04-2004) 
         
	
            | Kommentar Fra : Gert Simonsen | 
  Dato :  24-04-04 13:01 |  
  |  
 
            >
 > Så du skal lave en replace, inden du får scriptet til at indsætte i
 > databasen.
 >
 > F.eks.  Replace(tekst,"'","´")
 >
 Yes.....det er noget jeg kan bruge (og forstår  
Øhhh....så kommer 1000 kr. spørgsmålet, hvor hulen er det nu lige det skal
 sættes ind.
 Jeg syntes jeg har prøvet det hele.
 Det er vel lige før: Conn.Execute (SQLstmt) det skal ind ik'?
 Hilsen
 Gert Simonsen
            
              |   |   
            
        
 
            
         
              Jens B (24-04-2004) 
         
	
            | Kommentar Fra : Jens B | 
  Dato :  24-04-04 13:16 |  
  |   
            
"Gert Simonsen" <gert@FJERNESmallin.dk> skrev i en meddelelse
 news:408a576e$0$28854$ba624c82@nntp04.dk.telia.net...
 > >
 > > Så du skal lave en replace, inden du får scriptet til at indsætte i
 > > databasen.
 > >
 > > F.eks.  Replace(tekst,"'","´")
 > >
 > Yes.....det er noget jeg kan bruge (og forstår  
> Øhhh....så kommer 1000 kr. spørgsmålet, hvor hulen er det nu lige det skal
 > sættes ind.
 > Jeg syntes jeg har prøvet det hele.
 > Det er vel lige før: Conn.Execute (SQLstmt) det skal ind ik'?
 Først laver vi en variabel der hedder tekst. Og så bruger vi den variabel i
 selve insert-scriptet (det bliver mere overskueligt)
 dato = now()
 id= request.Form("brugerid")
 tekst = Replace(Request.Form("tekst"),"'","[ping]")
 SQLstmt = "INSERT INTO logbog (tekst,brugerid,dag,mnd,year,dato)"
 SQLstmt = SQLstmt & " VALUES ('" & tekst & "','" &
 request.Form("brugerid") & "'," & day(dato) & "," & month(dato) & "," &
 year(dato) & ",#" & Date() & "#)"
 'Response.Write SQLstmt
 Conn.Execute (SQLstmt)
 Jens
            
              |   |   
            
        
 
            
         
               Gert Simonsen (24-04-2004) 
         
	
            | Kommentar Fra : Gert Simonsen | 
  Dato :  24-04-04 13:32 |  
  |   
            > Først laver vi en variabel der hedder tekst. Og så bruger vi den variabel
 i
 > selve insert-scriptet (det bliver mere overskueligt)
 >
 > dato = now()
 > id= request.Form("brugerid")
 > tekst = Replace(Request.Form("tekst"),"'","[ping]")
 >
 > SQLstmt = "INSERT INTO logbog (tekst,brugerid,dag,mnd,year,dato)"
 > SQLstmt = SQLstmt & " VALUES ('" & tekst & "','" &
 > request.Form("brugerid") & "'," & day(dato) & "," & month(dato) & "," &
 > year(dato) & ",#" & Date() & "#)"
 > 'Response.Write SQLstmt
 > Conn.Execute (SQLstmt)
 >
 YES.......tusind tusind tak.
 Åh ja, man skal jo lære hver dag.
 
 Gert Simonsen
 
 
  
            
             |   |   
            
        
 
            
         
             Torben Brandt (24-04-2004) 
         
	
            | Kommentar Fra : Torben Brandt | 
  Dato :  24-04-04 16:13 |  
  |   
            Jens B skrev:
 > Gert Simonsen skrev
 >>
 >>Yep - nemlig, men hvordan undgår jeg det, er det virkeligt rigtigt man
 >>ikke kan skrive en tekst uden "ping"?
 > 
 > Ja det er rigtigt, at man ikke kan indsætte en tekst der indeholder ' .
 
 Nej, det er forkert.
 Hvis man vil skrive en ' i en tekstværdi i en sql-streng, så skal man 
 bare skrive to af dem ('').
 Eksempel:
 INSERT INTO tabel (navn) VALUES ('McDonald''s')
 Det vil kun blive indsat én i databasen.
 
 Det svarer til at skrive " i en streng i ASP.
 Eksempel:
 Response.Write "Han sagde: ""Hej med dig"""
 Det giver Han sagde: "Hej med dig"
 
 mvh Torben
 
  
            
             |   |   
            
        
 
            
         
              Jens B (24-04-2004) 
         
	
            | Kommentar Fra : Jens B | 
  Dato :  24-04-04 23:20 |  
  |   
            
 "Torben Brandt" <name@domain.invalid> skrev i en meddelelse
 news:c6e06l$4b9$2@sunsite.dk...
 > Nej, det er forkert.
 > Hvis man vil skrive en ' i en tekstværdi i en sql-streng, så skal man
 > bare skrive to af dem ('').
 
 Ah ok, det gør det jo lidt nemmere.
 
 Jeg har tit set folk forklare den løsning, men folk har altid bare skrevet
 replace ' med ''
 
 Og jeg har så misforstået det, og troet at folk mente at man skulle replace
 til gåseøjne ", og det har jeg altid syntes var en dårlig løsning, da det jo
 så ville give gert"s og ikke gert's i databasen.
 
 Men nu hvor du i tekst skriver "så skal man bare skrive to af dem", så kan
 jeg se at jeg tidligere har misforstået folks forklaringer.
 
 Jens
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |