Recent

Author Topic: Problem with polish fonts in dbgrid on msaccess database  (Read 4932 times)

lublinkermi

  • New Member
  • *
  • Posts: 46
Problem with polish fonts in dbgrid on msaccess database
« on: February 14, 2011, 06:25:46 am »
Hi I try many options to see polish fonts in dbgrid using mdb databases connected by ODBC. MDB is coding in AnsiString, Lazarus uses UTF8. I try this:

Code: [Select]
SQLQuery1.SQL.Text := 'SELECT true as wyslac ,*  FROM (SELECT ZUSDRA.II_6_NAZWASKR AS NAZWASKR, ZUSDRA.I_2_1IDDEKLS AS WERSJA, ZUSDRA.II_8_IMIEPIERW AS IMIE, ZUSDRA.II_7_NAZWISKO AS NAZWISKO, PLATN_ADRES.ADRPOCZTYEL AS EMAIL, ZUSDRA.IV_32_KWSKSPOL AS T51, ';
SQLQuery1.SQL.Text:=  SQLQuery1.SQL.Text+'ZUSDRA.VII_1_KWSKDPRZPL AS T52, ZUSDRA.VIII_3_KWZAPL_VIII AS T53,  ZUSDRA.IX_1_LSUMAKWDOZAPL AS RAZEM, ZUSDRA.I_2_2OKRESDEKLAR FROM PLATN_ADRES INNER JOIN ZUSDRA ON PLATN_ADRES.ID_PLATNIK = ZUSDRA.ID_PLATNIK WHERE ';
SQLQuery1.SQL.Text:=  SQLQuery1.SQL.Text+'(((ZUSDRA.I_2_2OKRESDEKLAR)='''+okres[1..2]+okres[4..7]+'''))and typ_adresu=''S'') AS wk);';
SQLQuery1.ExecSQL;
SQLQuery3.SQL.Text:='create table lazarus (nazwaskr varchar(50) , wyslac bit,wersja varchar(5),imie varchar(50),nazwisko varchar(50),email varchar(10)';
SQLQuery3.SQL.Text:=SQLQuery1.SQL.Text+',T51 numeric(10,2),T52 numeric(10,2),T53 numeric(10,2),RAZEM numeric(10,2))';
QLQuery3.ExecSQL;


SqlQuery1.First;

while not SqlQuery1.eof do
begin
firma:=Sqlquery1.Fields.FieldByName('nazwaskr').asString;
imie:=Sqlquery1.Fields.FieldByName('imie').asString;
nazwisko:=Sqlquery1.Fields.FieldByName('nazwisko').asString;
T51:=Sqlquery1.Fields.FieldByName('t51').asCurrency;
T52:=Sqlquery1.Fields.FieldByName('t52').asCurrency;
T53:=Sqlquery1.Fields.FieldByName('t53').asCurrency;
razem:=Sqlquery1.Fields.FieldByName('razem').asCurrency;
wyslac:=Sqlquery1.Fields.FieldByName('wyslac').asBoolean;
email:=Sqlquery1.Fields.FieldByName('email').asString;
firma:=AnsiToUTF8(firma);
imie:=AnsiToUTF8(imie);
nazwisko:=AnsiToUTF8(nazwisko);
SqlQuery3.Sql.Text:=' INSERT INTO LAZARUS (WYSLAC,NAZWASKR,IMIE,NAZWISKO,T51,T52,T53,RAZEM,EMAIL) VALUES (';
SqlQuery3.Sql.Text:=SqlQuery3.Sql.Text+''+BoolToStr(wyslac)+','''+firma+''', '''+imie+''', '''+nazwisko+''','+StringReplace((FloatToStr(t51)),',','.',[])+','+StringReplace((FloatToStr(t52)),',','.',[])+','+StringReplace((FloatToStr(t53)),',','.',[])+' ,'+StringReplace((FloatToStr(razem)),',','.',[])+','''+EMAIL+''');' ;
ShowMessage(SQlQuery3.SQL.Text);
SqlQuery3.ExecSQL;
SqlQuery1.Next;
end;

SQLQuery1.close;
                   

If this code is run I see all records as sql instructions,  databases is coded in UTf8, I see polish fonts in DBgrid. But if I remove ShowMessage, then ODBC says "database lazarus isn't exist".

How I can show polish fonts using mdb or mssql databases coded in ansistring?

 

TinyPortal © 2005-2018