Databáze > Ostatní DB

SQLite + FireDAC vkladanie textu UTF8 bez konverzie ?

(1/2) > >>

miroB:
Je to možné priamo v Delphi?
Takto nejako by to malo fungovat?

--- Kód: Delphi ---TField.AsString := moj_AnsiStringresp. UTF8String?

100459:
Konverze probehne implicitne. Jde o naprosto stejnou implicitni konverzi jako napr. v tomto kodu:


--- Kód: Delphi ---var  S: string; // UnicodeString  U: UTF8String;begin  U := 'Some text';  S := U; // implicitni konverzeend;

miroB:
Ked teda uz mam zdroj priamo v UTF8, tak mozem pouzit :

--- Kód: Delphi ---Field.AsString := moj_utf8_text;Nejak som sa obaval  toho, ze  Field.AsString a Field.AsWideString su uz od D2009+ automaticky konvertovane na WideString
Asi som zatazeny Accessom. Tan robi texty vo WideString a engina neposkytuje inu moznost. Na rozdiel od SQLite

100461:
Ano. Tady ovsem zalezi taky na typu pole:

- TStringField (ANSI typ pole) - accessor AsString interne ulozi predany UnicodeString po pretypovani jako AnsiString
- TWideStringField (Unicode typ pole) - accessor AsString interne ulozi Unicode retezec tak jak byl predan

Ta implicitni konverze z UTF8String na UnicodeString pri predavani hodnoty accessoru AsString probehne v obou pripadech. Tedy:


--- Kód: Delphi ---var  U: UTF8String;begin  TStringField(MyAnsiField).AsString := U; // implicitni konverze UTF8String na UnicodeString, pote ulozeni AnsiString  TWideStringField(MyUnicodeField).AsString := U; // implicitni konverze UTF8String na UnicodeString, pote ulozeni UnicodeStringend;

miroB:
Vezmime predpoklady:
1. SQLite engina ma nastaveny sposob ukladania textu ako UTF8
2. V Delphi pracujem priamo s UTF8 / AnsiStringami / PAnsiChar

Vysledok:
NIE JE znama cesta, ako dostat UTF8 text bez konverzie do SQLite ?

Je ta konverzia dost rychla / zanedbatelna, ak hovorime radovo o 100-kach MB dat?

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi