Avatar billede crunch Nybegynder
02. september 2003 - 09:34 Der er 15 kommentarer og
1 løsning

replace tegn + MySQL

Hej,

Jeg har lige konverteret til MySQL database med mine vb sider. Før har jeg kunnet nøjes med at replace

i = (Replace(Request("txtValue"), "'", "''")

men så vidt jeg kan se skal der lidt mere til for mySql, hvilke tegn skal replaces, før man kan indsætte f.eks. html i databasen?
Avatar billede clausjul Nybegynder
02. september 2003 - 09:36 #1
Det gælder formentlig kun for ' som skal replaces til '' - mere plejer jeg ikke at gøre.
Avatar billede crunch Nybegynder
02. september 2003 - 10:33 #2
hmm. det giver altså problemer med html i databasen. Indtil videre kan jeg kun finder php forklaringer med at anvende f.eks. stripslashes($yourvariable);
Men jeg kigger altså efter en løsning i asp.net med vb
Avatar billede erikjacobsen Ekspert
02. september 2003 - 10:49 #3
Hvilke tegn giver problemet, og hvad er reaktionen? Man kan jo godt
skrive en addslashes (PHP) funktion til VB, hvis det er nødvendigt.
Avatar billede crunch Nybegynder
02. september 2003 - 11:00 #4
hmm. jeg har prøvet at finde ud af det et stykke tid nu. Men jeg har endnu ikke fundet en løsning.

Jeg kan se at det ikke fungerer med felter der er af formatet text eller blob der indholder HTML i MySQL. Hvis jeg sætter dem om til varChar() - med en angivet værdi virker det.
Altså, det er nok noget med at læsningen går i kuk pgr af tegn som f.eks. ><\@#@ eller noget i denne stil.

Min kode virkede fint med access, men efter konverteringen, har jeg altså problemer med de større felter der indeholder HTML.

Mit spørgsmål går derfor lidt på om der er en bestemt metode, man plejer og anvende hvis man bruger aspx med MySql. Jeg bruger iøvrigt OleDB connection.
Avatar billede erikjacobsen Ekspert
02. september 2003 - 11:04 #5
Du er noget upræcis, men mener du at der står "\"-tegn i din tekst?

Og hvad er reaktionen - det dur ikke du bare siger det ikke virker.
Avatar billede crunch Nybegynder
02. september 2003 - 11:10 #6
Sorry, men jeg har ikke helt fundet ud af endnu hvad der gør det. Problemet er at jeg ikke rigtig får nogle eksakte fejlmeddelelser, og der cracher efter en 2-3 loads. Derfor har jeg meget svært ved at sige præcist hvilke tegn der gør det. Det var lidt derfor jeg efterlyste om der var nogen der havde haft samme problem. Har lige prøvet at fjerne alle \ men det syntes ikke at være det. Så jeg må vel bare forsætte med at prøve at ændre indholdet, og teste og teste indtil det ikke gider crache mere...
Avatar billede crunch Nybegynder
02. september 2003 - 11:52 #7
Måske siger dette noget noget:

Det hele kører fint med f.eks. :


Public Function GettblSitePhrase(ByVal strName, ByVal strColum)
            Dim intSiteId As String = Session("siteId")
            Dim objConn As New OleDbConnection(hosting0Conn)
            Dim strSQL As String = "SELECT " + strColum + " FROM tblsitephrase WHERE strname='" + strName + "'  AND intsiteid = " + intSiteId + " ORDER BY intorder ASC;"
            Dim objCmd As New OleDbCommand(strSQL, objConn)
            Dim i As String
            objConn.Open()
            i = objCmd.ExecuteScalar()
            i = Replace(i, "ø", "&oslash;")
            i = Replace(i, "Ø", "&Oslash;")
            i = Replace(i, "å", "&aring;")
            i = Replace(i, "Å", "&Aring;")
            i = Replace(i, "æ", "&aelig;")
            i = Replace(i, "Æ", "&AElig;")
            GettblSitePhrase = i
            objConn.Close()
        End Function


Men hvis jeg ændrer feltet i dbén fra varchar() til longtext eller blob ja, så får jeg fejlen:
DB_E_NOTABLE(0x80040E37).
System.Data.OleDb.OleDbException: No error information available: DB_E_NOTABLE(0x80040E37).
Avatar billede erikjacobsen Ekspert
02. september 2003 - 12:01 #8
Ok, så er problemet noget heeelt andet.

Dine store felter skal nok stå til sidst i din select, altså:

  select lille1,lille2,stor from ...

Og et "stort" felt er nemlig en blob/longtext. Det er driverafhængigt
og et klassisk "problem" med MSSQL. Skulle ikke undre mig om Microsoft
stadig slæber rundt med i en eller anden driver-tingest, selv om det
nu er MySql.
Avatar billede erikjacobsen Ekspert
02. september 2003 - 12:03 #9
Nå, du har kun ét felt .... ;)  Måske skulle man læse hvad du skriver...
Javel så, men, så er det jo nok ikke lige det...alligevel...
Avatar billede crunch Nybegynder
02. september 2003 - 12:06 #10
hm.. jeg er godt nok ved at være træt af dette problem, har siddet med det siden igår, har søgt på nettet og alligvel er der ikke rigtig noget der virker..
Avatar billede erikjacobsen Ekspert
02. september 2003 - 12:26 #11
Du kan vel hurtigt teste om det virker hvis dit longtext felt er defineret
som det sidste felt i din tabel.
Avatar billede crunch Nybegynder
02. september 2003 - 13:06 #12
det hjælper desværre ikke..
Avatar billede erikjacobsen Ekspert
02. september 2003 - 13:11 #13
...og foreslå at droppe Microsoft, vil du vel ikke høre tale om? ;)

Men kan du checke om du har opdaterede drivere etc. Det problem jeg nævnte med
MsSql forsvandt med en opdatering.
Avatar billede crunch Nybegynder
02. september 2003 - 13:15 #14
MEn jeg bruger jo MySQL det er jo ikke microsoft... og .net er sku ellers meget godt syntes jeg.
Avatar billede m_skau Nybegynder
02. september 2003 - 22:50 #15
Hmm. Du bruger OleDB. MySQL omtaler kun OleDB connections kort, og siger at det kan lade sig gøre, men at det ikke understøttes (med MyOleDB provideren). Se siden: 
  http://www.mysql.com/articles/dotnet/
Selv bruger jeg DBProvider, der også omtales, og den virker fint (selvom jeg ikke har haft præcis din problematik gemmer jeg dog html felter i blob, og det virker). Jeg har også prøvet den omtalte MySQLNet Provider, den kan jeg ikke få til at virke.
Avatar billede crunch Nybegynder
03. september 2003 - 09:14 #16
Tak for jeres svar. Jeg har skiftet til ODBC det virker upåklageligt.. selvom jeg egentlig hellere ville have oleDb...
(-:
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester