utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter proble

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter proble

Mesaj gönderen ayhandemirtas »

Merhaba, Sqlite veritabını kullanıyorum. Veritabanında Türkçe karakter problemi
bulunmuyor, uygulamada Query kullanıyorum.
Label de veriyi gösterirken Türkçe karakter problemi yaşadım.
Utf-8 ayar yeri bulamadım.
Konu hakkı da bilgisi olan ve bizimle paylaşan olursa sevinirim.
Saygılarımla.

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

Sanırım çözen olmadı. Hala deniyorum. Çözemedim.

Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen barisatalay »

Aşağıdaki şekilde manuel olarak tanımlamayı dener misiniz.

Kod: Tümünü seç

  Connection .Params.Values['CharacterSet'] := 'utf8';

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

dostum sağol,
kodları nereye yazacağımı bulamadım, dolayısı ile çalışimadı.
SqlQuery ve SQLConnction events lerine de denedim.
ayrıca SqlQuery / Sql/ TStrings list editor içine kodlarda sonra da koydum çalışmadı.
belgi SqlQuery / Sql/ TStrings list editor den çözebilirim diye düşündüm.
şimdi kod deniyorum.

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

Kod: Tümünü seç

SQLQuery1.Params.Values['CharacterSet'] := 'utf8';
bu kod ile hata verdi, Params.ParamValues ekleyince kodda bir sıkıntı olmadı
ve program uygulamayı derledi.

Kod: Tümünü seç

SQLQuery1.Params.ParamValues['CharacterSet'] := 'utf8';
uygulama çalışınca
SQLQuery1: Parameter 'CharacterSet' not found
şeklinde hata verdi.
'utf8'
'utf-8'
şeklinde denedim yine olmadı.

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7529
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen mussimsek »

Çok fazla deneyimim yok ama Android Emulatörde denediğim de karakterler bozuktu. Girip cihazın dilini Türkçe yaptım, sorun kendiliğinden düzeldi.

Kullandığınız cihaz ve dili nedir?

Kolay gelsin.

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

Kod: Tümünü seç

SqlConnection.Params.Values['CharacterSet'] := 'utf8';
SqlConnection.Open;

SQLQuery1.Params.ParamValues['CharacterSet'] := 'utf8';
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(Form4.label1.Text);
SQLQuery1.Active:=True;
Connectiona için verdiğin kodları uygulamadım sonra da connection açtım.
değişen bi rşey olmadı.

SqlQuery için Values in başına Param ekledim
yine değişen bir şey olmadı.
iki kodu aynı anda denedim yine değişen birşey olmadı :)
kod çalışmasa uygulamada hata verir her hangi bir hat vermedi.
Zaten label dan Sql kısmına kodda çekiyorum , buda sorunsuz çalışıyor,
sorun olsa sql kodları label dan çekerek çalışmazdı.
acama xe5 için utf8 türkçe karakterleri temsil etmiyormu?
Latin5_bin
Latin5_turkish_ci
olarak mı denesek acep
?????
neyse çalışmaya devam.

Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen barisatalay »

Şöyle bir şey önereyim şimdiye kadar hiç bir projemde bu şekilden dışarı çıkmadım: Connection ayarlarını kod ile ayarlıyorum örnek gösterime gelirsek.

Kod: Tümünü seç

Uses System.IOUtils; <== Eklenmesi gerek

With Connection do
begin
  LoginPrompt := False;
  Params.Clear;
  Params.Values['Database']     := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'Databaseadi.s3db';
  Params.Values['DriverID']     := 'SQLite';
  Params.Values['CharacterSet'] := 'utf8';
  Connected     := True;
end;
Şuan üzerinde çalıştığım projede çalışır durumda olan bir kod dizisi.

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

Kod: Tümünü seç

SQLQuery1.SQL.Add( 'CHARACTER SET latin5 COLLATE latin5_turkish_ci;');
bunu denedim olmadı;

Kod: Tümünü seç

Uses System.IOUtils; <== Eklenmesi gerek

With Connection do
begin
  LoginPrompt := False;
  Params.Clear;
  Params.Values['Database']     := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'Databaseadi.s3db';
  Params.Values['DriverID']     := 'SQLite';
  Params.Values['CharacterSet'] := 'utf8';
  Connected     := True;
end;
bunu denedim uygulama kapandı

Kod: Tümünü seç

{$IF DEFINED(iOS) or DEFINED(ANDROID)}
  veri2.Params.Values['Database'] :=
  TPath.Combine(TPath.GetDocumentsPath, 'veri2');
  veri2.Params.Values['DriverID']     := 'SQLite';
  veri2.Params.Values['CharacterSet'] := 'utf8';
  {$ENDIF}
ben veritabanına bu şekilde bağlanıyorum.
veri2.Params.Values['DriverID'] := 'SQLite';
veri2.Params.Values['CharacterSet'] := 'utf8';
bunları ekledim. Ama yine çalışmadı
Hayır olsun inşallah.

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

Problem çözüldü,
kodlarda hata yokmuş, hata veritabanı ile alakalı.

Kod: Tümünü seç

{$IF DEFINED(iOS) or DEFINED(ANDROID)}
  veri2.Params.Values['Database'] :=
  TPath.Combine(TPath.GetDocumentsPath, 'veri2');
//  veri2.Params.Values['DriverID']     := 'SQLite';
//  veri2.Params.Values['CharacterSet'] := 'utf8';
  {$ENDIF}
// kısımları kaldırdım.
Veritabanını SQLite Developer ile düzenlemiştim.
Delphi 7 de accsess den sqlite veritabanına
sqlite componentiyle aktarmıştım,
aktardığım verileri incelediğimde delphi 7 üzerinden her hangi bir
sıkıntı ile karşılaşmadım.
Son olarak
SQLite Database Browser 2.0 b1.exe
veritabanımı bu uygulama ile açtım.
maalesef burada problem olduğunu gördüm.
Düzeltme yapınca problemin devam ettiğini de gördüm.
// veri2.Params.Values['DriverID'] := 'SQLite';
// veri2.Params.Values['CharacterSet'] := 'utf8';
kaldırdığım zaman problem ile karşılaşmadım.

Vaktinizi aldığım için kusura bakmayın.
Şimdi verileri sqlite veritabanına atmanın çaresine bakacağım.
Problemsiz olarak aktarırsam sizlere buradan paylaşırım.
Herkese kolay gelsin.

Kullanıcı avatarı
ayhandemirtas
Üye
Mesajlar: 114
Kayıt: 01 Oca 2008 10:02
Konum: Eskişehir

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen ayhandemirtas »

arkadaşlar merhaba;
utf-8 Türkçe karakteri ile problem yaşamıştım. Esasında problemin
veritabanına aktarırken olduğunu fark etmiştim.
2000 adet veriden bir kaç tanesini veritabanından manüel
değiştirdikten sonra sıkıntının Xe5 de Türkçe karakterlerde
gösterme sıkıntısı olmadığını gördüm.
Sıra veritabanına Türkçe karakterlerde veri atmaya geldi.
Biraz uğraştıktan sonra Allah'a şükür olsun sorumun cevabını buldum.

aşağıdaki linkte sıfırdan veritabanı oluşturma ve excell den veritabanına
bilgi aktarmayı anlattım.
Umarım ihtiyacı olan arkadaşla faydam olur.
Saygı ve sevgilerimle

viewtopic.php?f=36&t=32560

selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen selm@n »

Merhaba ;

http://mobiluygulamateknolojileri.org.s ... index.html bu linkteki videolara istinaden bir uygulama yapmaya çalıştım lakin, veritabanı bir türlü emulatorde çalıştıramadım direk siyah bir ekran geliyor ve oyle kalıyor ama connection'mı false yaptığımda uygulama çalışıyor,

Kod: Tümünü seç

procedure TDataModule1.FDConnection1BeforeConnect(Sender: TObject);
begin
// FDConnection1.Params.Values['Database'] := GetHomePath + PathDelim + 'stok.s3db';

With FDConnection1 do
begin
  LoginPrompt := False;
  Params.Clear;
  Params.Values['Database']     := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'stok.s3db';
  Params.Values['DriverID']     := 'SQLite';
  Params.Values['CharacterSet'] := 'utf8';
  Connected     := True;

end;
queryDepo.Active:=True;
stok.Active:=True;
end;
desing kısmında Connection ve Query'leri Active yaptığımda çalışıyor ama emulatorde çalıştırdığımda siyah bir ekran geliyor sadece. sebebi ne olabilir :?:
;)

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7529
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen mussimsek »

@selm@n, oluşturduğun database dosyasını cihaza yüklemen lazım. Büyük ihtimal bu dosyayı bulamıyor.

Project menüsünden Deployment'ı aç ve database dosyasını cihaz da nereye yükleyeceğini seçip, ona göre kodunu ayarla.

Kolay gelsin.

selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen selm@n »

@mustafa hocam cevap için teşekurler , gecikmeli geri dönüş için kusuruma bakmayın.
dediğinizi yaptım ama dosyayı nereye atacağımı tam kestiremedim projenin olduğu yerede attım, ./ root dizinede bir çok varyasyon denedim ama beceremedim

resimdeki gibi,

Resim

halen siyah ekran alıyorum
;)

Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: utf-8 Sqlite veritabanı kullanımı ve Türkçe karakter pro

Mesaj gönderen SimaWB »

iOs için StartUp\Documents\ ve Android için assets\internal\ yazmalısın.
Detaylı bilgi.
There's no place like 127.0.0.1

Cevapla