Sqlite create

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Sqlite create

Mesaj gönderen brs »

Selam;

Mobil uygulamada database oluşturmam lazım, örnek kodlarla database oluşturmak istiyorum fakat database oluşmadığı gibi hatada almıyorum,
sorun neden kaynaklı olabilir.

Kod: Tümünü seç

procedure TForm1.Button4Click(Sender: TObject);
var
  DbYol: string;
begin
  DbYol := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'Ders.db';
  With Connection do
  begin
    LoginPrompt := False;
    params.Clear;
    params.Values['Database'] := DbYol;
    params.Values['DriverID'] := 'SQLite';
    params.Values['CharacterSet'] := 'utf8';
    Connected := True;
  end;

  With MyDatabase do
  begin
    Active := False;
    Connection := Connection;
    SQL.Clear;
    SQL.Add('CREATE TABLE IF NOT EXISTS DERS (');
    SQL.Add(' ADI nvarchar(10)');
    SQL.Add(' );');
    ExecSQL;

    SQL.Clear;
    SQL.Add('SELECT');
    SQL.Add(' ADI');
    SQL.Add(' FROM DERS');
    Active := True;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Sqlite create

Mesaj gönderen AliZairov »

Merhaba. Şöyle bir örnek işinize yarar. Dosya yoksa oluşturur.

Kod: Tümünü seç

procedure GO;
var
  DB: string;
begin
  DB := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'db.s3db';
  with Main do
  begin
    FDC.DriverName := 'SQLITE';
    FDQ.Connection := FDC;
    FDC.Params.Values['Database'] := DB;
    FDC.Params.Values['CharacterSet'] := 'utf8';
    if not FileExists(DB) then
    begin
      FDQ.SQL.Add( 'CREATE TABLE IF NOT EXISTS channels (' );
      FDQ.SQL.Add( ' name nvarchar(50),');
      FDQ.SQL.Add( ' url nvarchar(250)');
      FDQ.SQL.Add( ' );');
      FDQ.ExecSQL;
    end;
    FDC.Open;
  end;
end;
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Sqlite create

Mesaj gönderen brs »

AliZairov yazdı:Merhaba. Şöyle bir örnek işinize yarar. Dosya yoksa oluşturur.

Kod: Tümünü seç

procedure GO;
var
  DB: string;
begin
  DB := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'db.s3db';
  with Main do
  begin
    FDC.DriverName := 'SQLITE';
    FDQ.Connection := FDC;
    FDC.Params.Values['Database'] := DB;
    FDC.Params.Values['CharacterSet'] := 'utf8';
    if not FileExists(DB) then
    begin
      FDQ.SQL.Add( 'CREATE TABLE IF NOT EXISTS channels (' );
      FDQ.SQL.Add( ' name nvarchar(50),');
      FDQ.SQL.Add( ' url nvarchar(250)');
      FDQ.SQL.Add( ' );');
      FDQ.ExecSQL;
    end;
    FDC.Open;
  end;
end;

Selam Üsdat,

Verdiğin kodlar ve benim kodları test sorunsuz olarak çalışıyor, fakat bir türlü db oluşturulmuyor, ben mi yanlış biliyorum acaba bu kodlarla (System.IOUtils.TPath.GetDocumentsPath + PathDelim) APK nin olduğu yere db oluşturulması gerekmiyor mu? başka yere db oluşturma ihtimaline karşı cep telefondaki tüm klasörleri aradım fakat bulamadım...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Sqlite create

Mesaj gönderen AliZairov »

Uygulamanızın /data/data/com.uygulamanız/files klasörüne ekler. Ben kaç defa kullandım sorun olmadı. Sizde sorun nedir acaba hata yazmadan böyle çözüm bulmak zor oluyor.
Cevapla