Gå til innhold

Anbefalte innlegg

Vi aksesserer databasen vår, som kan ligge i en Pervasive.SQL eller MSSql database vha TADOConnection + TADOQuery. Innholdet i databasen må ligge i OEM tegnsett pga legacy programmer. Mot Pervasive.SQL så funker det greit, men når vi henter (og inserter) tekster i MSSQL, så må vi konvertere til ANSI.

 

Koden som i dag ser noe slik ut:

sTekst := oQuery.FieldByName('FeltNavnMedTekst').AsString;

 

Kan vi jo konvertere til:

sTekst := oQuery.FieldByName('FeltNavnMedTekst').AsString;

if DatabaseType = C_MSSQL then OEMToChar(PChar(sText),PChar(sText));

 

men det blir forferdelig rotete, og sinnsykt mange steder å endre.

Hadde håpet på at det var en mulighet for å endre dette med en property på TADOConnection objektet, eller i connection stringen, men finner ikke noe jeg kan bruke.

 

Har også tenkt på å overstyre "FieldByName().AsString" metoden, men kan ikke helt se hvordan det lar seg løse da "FieldByName" returnerer et "TField" objekt fra mitt "TADOQuery" objekt. Dvs at jeg må overstyre "AsString" metoden i "TField" klassen, og den har jeg muligens tilgang til, men selv om jeg lager min egen "TmyField", så vil jo fortsatt "TADOQuery" instansiere en et vanlig "TField" objekt (vet jo ikke om min nye klasse).

 

Noen som har en lur ide ?

 

TIA

Karl

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...