Sayfayı Yazdır | Pencereyi Kapat

Veritabanı

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=918
Tarih: 06 Ocak 2025 Saat 14:17
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Veritabanı
Mesajı Yazan: MustafaCetin
Konu: Veritabanı
Mesaj Tarihi: 29 Ağustos 2024 Saat 15:42
Kullanıcı kayıt ve giriş yapabiliyor ama not kaydetmek istediğimde sqlite da tablo oluşturuyor sonra  Not kaydı sırasında bir hata oluştu mesajı geliyor.
var
  anaSayfa, girisSayfa, kayitSayfa, postLoginSayfa: TclForm;
  nameK, surnameK, passwordK: TclProEdit;
  nameG, surnameG, passwordG: TclProEdit;
  kayitButton, girisButton: TclProButton;
  notBasligiEdit, notIcerigiEdit: TclProEdit; 
  VScroll:TCLVertScrollBox;

void ShowAnaSayfa;
{
  if not (Assigned(anaSayfa))
    anaSayfa = TclForm.Create(Self);

  anaSayfa.SetFormBGImage(' https://i.hizliresim.com/phhojjq.jpg" rel="nofollow - https://i.hizliresim.com/phhojjq.jpg ');

  girisButton = anaSayfa.AddNewProButton(anaSayfa, 'girisButton', 'Giriş Yap');
  girisButton.Margins.Top = 100;
girisButton.Width = 160;
girisButton.Height = 40;
girisButton.clProSettings.RoundWidth = 20;
girisButton.clProSettings.RoundHeight = 20;
girisButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2196F3');
girisButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');


girisButton.SetclProSettings(girisButton.clProSettings);
anaSayfa.AddNewEvent(girisButton, tbeOnClick, 'GirisYap');

  kayitButton = anaSayfa.AddNewProButton(anaSayfa, 'kayitButton', 'Kayıt Ol');
 kayitButton.Margins.Top = 160;
kayitButton.Width = 160;
kayitButton.Height = 40;
kayitButton.clProSettings.RoundWidth = 20;
kayitButton.clProSettings.RoundHeight = 20;
kayitButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
kayitButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');

kayitButton.SetclProSettings(kayitButton.clProSettings);
anaSayfa.AddNewEvent(kayitButton, tbeOnClick, 'KayitOl');

  anaSayfa.Run;
}

void ShowPostLoginScreen(userName: string);
var
  welcomeLabel: TclProLabel;
  notAraButton, notEkleButton: TclProButton;
  notAraEdit: TclProEdit;
  notLabel: TclProLabel;
{
  if not (Assigned(postLoginSayfa))
    postLoginSayfa = TclForm.Create(Self);

  postLoginSayfa.SetFormBGImage(' https://i.hizliresim.com/km8rak7.png" rel="nofollow - https://i.hizliresim.com/km8rak7.png ');

  welcomeLabel = postLoginSayfa.AddNewProLabel(postLoginSayfa, 'welcomeLabel', 'Hoşgeldiniz, ' + userName + '!');
  welcomeLabel.Align = alNone;
  welcomeLabel.Position.X = 20;
  welcomeLabel.Position.Y = 120;
  welcomeLabel.Width = 300;
  welcomeLabel.Height = 75;
welcomeLabel.clProSettings.FontSize = 15;
welcomeLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#0be5ae');
welcomeLabel.SetclProSettings(welcomeLabel.clProSettings);


  notLabel = postLoginSayfa.AddNewProLabel(postLoginSayfa, 'notLabel', 'Not Ara:');
  notLabel.Align = alNone;
  notLabel.Position.X = 50;
  notLabel.Position.Y = 240;
  notLabel.Width = 100;
  notLabel.Height = 30;
  notLabel.clProSettings.FontSize = 16;
notLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
notLabel.SetclProSettings(notLabel.clProSettings);

  notAraEdit = postLoginSayfa.AddNewProEdit(postLoginSayfa, 'notAraEdit', '');
  notAraEdit.Align = alNone;
  notAraEdit.Position.X = 120;
  notAraEdit.Position.Y = 240;
  notAraEdit.Width = 200;
  notAraEdit.Height = 45;
  notAraEdit.clProSettings.RoundWidth = 20;
notAraEdit.clProSettings.RoundHeight = 20;
notAraEdit.SetclProSettings(notAraEdit.clProSettings);

  notAraButton = postLoginSayfa.AddNewProButton(postLoginSayfa, 'notAraButton', 'Ara');
  notAraButton.Align = alNone;
  notAraButton.Position.X = 160;
  notAraButton.Position.Y = 310;
  notAraButton.Width = 120;
  notAraButton.Height = 45;
 notAraButton.clProSettings.RoundWidth = 20;
notAraButton.clProSettings.RoundHeight = 20;
notAraButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
notAraButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
notAraButton.SetclProSettings(notAraButton.clProSettings);
postLoginSayfa.AddNewEvent(notAraButton, tbeOnClick, 'NotAra');

  notEkleButton = postLoginSayfa.AddNewProButton(postLoginSayfa, 'notEkleButton', 'Not Ekle');
  notEkleButton.Align = alNone;
  notEkleButton.Position.X = 160;  
  notEkleButton.Position.Y = 350;
  notEkleButton.Width = 120;
  notEkleButton.Height = 45;
 notEkleButton.clProSettings.RoundWidth = 20;
notEkleButton.clProSettings.RoundHeight = 20;
notEkleButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FF5722');
notEkleButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
notEkleButton.SetclProSettings(notEkleButton.clProSettings);
postLoginSayfa.AddNewEvent(notEkleButton, tbeOnClick, 'ShowNotEkleScreen');

  postLoginSayfa.Run;
}

void KaydetNot;
{
  try
    
    Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'MuhabirMobil.db', '');
    ShowMessage('Veritabanına bağlanıldı.');

    
    Clomosy.DBSQLiteQuery.Sql.Text = 
    'SELECT * FROM Notes WHERE note_title = ' + QuotedStr(notBasligiEdit.Text) +
    ' AND note_content = ' + QuotedStr(notIcerigiEdit.Text);
    Clomosy.DBSQLiteQuery.OpenOrExecute;

    
    if not (Clomosy.DBSQLiteQuery.Found)
    {
      Clomosy.DBSQLiteQuery.Sql.Text = 
      'INSERT INTO Notes (note_title, note_content) VALUES (' +
      QuotedStr(notBasligiEdit.Text) + ', ' + QuotedStr(notIcerigiEdit.Text) + ');';
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      ShowMessage('Not başarıyla kaydedildi!');

      // Not eklendikten sonra giriş ekranına dön
      ShowPostLoginScreen('Kullanıcı');  
    }
    else
    {
      ShowMessage('Bu not zaten mevcut.');
    }
  except
    ShowMessage('Not kaydı sırasında bir hata oluştu: ' + LastExceptionMessage);
}
}




void ShowNotEkleScreen;
var
  MyForm: TclForm;
  notBasligiLabel, notIcerigiLabel: TclProLabel;
  notBasligiEdit: TclProEdit;
  notIcerigiScrollBox: TCLVertScrollBox;
  notIcerigiEdit: TclProEdit;
  kaydetButton: TclProButton;
{
  MyForm = TclForm.Create(Self);
  MyForm.SetFormBGImage(' https://i.hizliresim.com/km8rak7.png" rel="nofollow - https://i.hizliresim.com/km8rak7.png ');

  notBasligiLabel = MyForm.AddNewProLabel(MyForm, 'notBasligiLabel', 'Not Başlığı:');
  notBasligiLabel.Align = alNone;
  notBasligiLabel.Position.X = 30;
  notBasligiLabel.Position.Y = 50;

  notBasligiEdit = MyForm.AddNewProEdit(MyForm, 'notBasligiEdit', '');
  notBasligiEdit.Align = alNone;
  notBasligiEdit.Position.X = 130;
  notBasligiEdit.Position.Y = 50;
  notBasligiEdit.Width = 200;
  notBasligiEdit.Height = 30;

  notIcerigiLabel = MyForm.AddNewProLabel(MyForm, 'notIcerigiLabel', 'Not İçeriği:');
  notIcerigiLabel.Align = alNone;
  notIcerigiLabel.Position.X = 30;
  notIcerigiLabel.Position.Y = 100;

  
  notIcerigiScrollBox = MyForm.AddNewVertScrollBox(MyForm, 'notIcerigiScrollBox');
  notIcerigiScrollBox.Align = alNone;
  notIcerigiScrollBox.Position.X = 130;
  notIcerigiScrollBox.Position.Y = 100;
  notIcerigiScrollBox.Width = 200;
  notIcerigiScrollBox.Height = 150;
  notIcerigiScrollBox.ShowScrollBars = True; 

  notIcerigiEdit = MyForm.AddNewProEdit(notIcerigiScrollBox, 'notIcerigiEdit', '');
  notIcerigiEdit.Align = alTop; 
  notIcerigiEdit.Width = notIcerigiScrollBox.Width - 20;
  notIcerigiEdit.Height = notIcerigiScrollBox.Height * 2; 
  notIcerigiEdit.Margins.Top = alTop;
  notIcerigiEdit.TextSettings.VertAlign=1;
  notIcerigiEdit.TextSettings.WordWrap=True;

  kaydetButton = MyForm.AddNewProButton(MyForm, 'kaydetButton', 'Kaydet');
  kaydetButton.Align = alNone;
  kaydetButton.Position.X = 150;
  kaydetButton.Position.Y = 270;
  kaydetButton.Width = 100;
  kaydetButton.Height = 40;
  kaydetButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
  kaydetButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  kaydetButton.SetclProSettings(kaydetButton.clProSettings);
 
  if (Assigned(kaydetButton)) 
  {
    try
      MyForm.AddNewEvent(kaydetButton, tbeOnClick, 'KaydetNot');
    except
      ShowMessage('Event bağlanırken bir hata oluştu.');
    };
  };

 
  MyForm.Run;
}


void GirisYap;
{
  if not (Assigned(girisSayfa))
    girisSayfa = TclForm.Create(Self);

  girisSayfa.SetFormBGImage(' https://i.hizliresim.com/phhojjq.jpg" rel="nofollow - https://i.hizliresim.com/phhojjq.jpg ');

nameG = girisSayfa.AddNewProEdit(girisSayfa, 'nameG', 'İsminiz:');
nameG.Margins.Top = 150;
nameG.Width = 350;
nameG.Height = 45;
nameG.clProSettings.RoundWidth = 20;
nameG.clProSettings.RoundHeight = 20;
nameG.SetclProSettings(nameG.clProSettings);

surnameG = girisSayfa.AddNewProEdit(girisSayfa, 'surnameG', 'Soyisminiz:');
surnameG.Margins.Top = 210;
surnameG.Width = 350;
surnameG.Height = 45;
surnameG.clProSettings.RoundWidth = 20;
surnameG.clProSettings.RoundHeight = 20;
surnameG.SetclProSettings(surnameG.clProSettings);

passwordG = girisSayfa.AddNewProEdit(girisSayfa, 'passwordG', 'Şifreniz:');
passwordG.Margins.Top = 270;
passwordG.Width = 350;
passwordG.Height = 45;
passwordG.clProSettings.RoundWidth = 20;
passwordG.clProSettings.RoundHeight = 20;
passwordG.Password = True;
passwordG.SetclProSettings(passwordG.clProSettings);

girisButton = girisSayfa.AddNewProButton(girisSayfa, 'girisButton', 'Giriş Yap');
girisButton.Margins.Top = 350;
girisButton.Width = 160;
girisButton.Height = 40;
girisButton.clProSettings.RoundWidth = 20;
girisButton.clProSettings.RoundHeight = 20;
girisButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2196F3');
girisButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');

girisButton.SetclProSettings(girisButton.clProSettings);
girisSayfa.AddNewEvent(girisButton, tbeOnClick, 'KullaniciKontrolEt');

  girisSayfa.Run;
}
void KayitOl;
{
  if not (Assigned(kayitSayfa))
    kayitSayfa = TclForm.Create(Self);

  kayitSayfa.SetFormBGImage(' https://i.hizliresim.com/phhojjq.jpg" rel="nofollow - https://i.hizliresim.com/phhojjq.jpg ');

  nameK = kayitSayfa.AddNewProEdit(kayitSayfa, 'nameK', 'İsminiz:');
nameK.Margins.Top = 150;
nameK.Width = 350;
nameK.Height = 45;
nameK.clProSettings.RoundWidth = 20;
nameK.clProSettings.RoundHeight = 20;
nameK.SetclProSettings(nameK.clProSettings);

surnameK = kayitSayfa.AddNewProEdit(kayitSayfa, 'surnameK', 'Soyisminiz:');
surnameK.Margins.Top = 210;
surnameK.Width = 350;
surnameK.Height = 45;
surnameK.clProSettings.RoundWidth = 20;
surnameK.clProSettings.RoundHeight = 20;
surnameK.SetclProSettings(surnameK.clProSettings);

passwordK = kayitSayfa.AddNewProEdit(kayitSayfa, 'passwordK', 'Şifreniz:');
passwordK.Margins.Top = 270;
passwordK.Width = 350;
passwordK.Height = 45;
passwordK.clProSettings.RoundWidth = 20;
passwordK.clProSettings.RoundHeight = 20;
passwordK.Password = True;
passwordK.SetclProSettings(passwordK.clProSettings);

kayitButton = kayitSayfa.AddNewProButton(kayitSayfa, 'kayitButton', 'Kayıt Ol');
kayitButton.Margins.Top = 350;
kayitButton.Width = 160;
kayitButton.Height = 40;
kayitButton.clProSettings.RoundWidth = 20;
kayitButton.clProSettings.RoundHeight = 20;
kayitButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
kayitButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
kayitButton.SetclProSettings(kayitButton.clProSettings);
kayitSayfa.AddNewEvent(kayitButton, tbeOnClick, 'SqLiteInsertUser');

  kayitSayfa.Run;
}

void SqLiteInsertUser;
{
  try
     Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath+'MuhabirMobil.db', '');
   
    ShowMessage('Veritabanına bağlanıldı.');
   
    Clomosy.DBSQLiteQuery.Sql.Text = 
    'SELECT * FROM Users WHERE user_name = ' + QuotedStr(nameK.Text) + 
    ' AND user_surname = ' + QuotedStr(surnameK.Text);
    Clomosy.DBSQLiteQuery.OpenOrExecute;
    
    if not (Clomosy.DBSQLiteQuery.Found)
    {
      Clomosy.DBSQLiteQuery.Sql.Text = 
      'INSERT INTO Users (user_name, user_surname, user_password) VALUES (' +
      QuotedStr(nameK.Text) + ', ' + QuotedStr(surnameK.Text) + ', ' + QuotedStr(passwordK.Text) + ');';
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      ShowMessage('Başarılı bir şekilde kayıt olundu!');
      
      kayitSayfa.clHide;  
      
      GirisYap;  
    }
    else
    {
      ShowMessage('Bu kullanıcı zaten mevcut.');
    }
  except
    ShowMessage('Kayıt sırasında bir hata oluştu: ' + LastExceptionMessage);
}
}

void SqLiteConnectionCreateTable;
var
  TableExists: Boolean;
{
  try
    Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath+'MuhabirMobil.db', '');
    ShowMessage('Veritabanına bağlanıldı.');

    Clomosy.DBSQLiteQuery.Sql.Text = 'SELECT name FROM sqlite_master WHERE type="table" AND name="Users";';
    Clomosy.DBSQLiteQuery.OpenOrExecute;
    
    TableExists = not (Clomosy.DBSQLiteQuery.Eof);
    
    if not (TableExists)
    {
      Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE Users(user_id INTEGER PRIMARY KEY AUTOINCREMENT, user_name TEXT, user_surname TEXT, user_password TEXT)';
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      ShowMessage('Kullanıcı tablosu başarıyla oluşturuldu!');
    }
    else
    {
      ShowMessage('Kullanıcı tablosu zaten mevcut.');
    }

    Clomosy.DBSQLiteQuery.Sql.Text = 'SELECT name FROM sqlite_master WHERE type="table" AND name="Notes";';
    Clomosy.DBSQLiteQuery.OpenOrExecute;

    TableExists = not (Clomosy.DBSQLiteQuery.Eof);

    if not (TableExists)
    {
      Clomosy.DBSQLiteQuery.Sql.Text = 
      'CREATE TABLE Notes(' +
      'note_id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
      'note_title TEXT, ' +
      'note_content TEXT)';
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      ShowMessage('Notes tablosu başarıyla oluşturuldu!');
    }
    else
    {
      ShowMessage('Notes tablosu zaten mevcut.');
    }

  except
   
    ShowMessage('Veritabanı işlemleri sırasında bir hata oluştu: ' + LastExceptionMessage);
  }
}

void KullaniciKontrolEt;
var
  Qry: TClSQLiteQuery;
{
  try
     Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath+'MuhabirMobil.db', '');
    
    ShowMessage('Veritabanına bağlanıldı.');

    Qry = Clomosy.DBSQLiteQueryWith(
      'SELECT * FROM Users WHERE user_name = ' + QuotedStr(nameG.Text) + 
      ' AND user_surname = ' + QuotedStr(surnameG.Text) + 
      ' AND user_password = ' + QuotedStr(passwordG.Text));
    
    Qry.OpenOrExecute;
    
    if (Qry.Found)
    {
      ShowMessage('Başarılı bir şekilde giriş yapıldı!');
      girisSayfa.clHide; 
      ShowPostLoginScreen(nameG.Text);  
    }
    else
    {
      ShowMessage('Kullanıcı bulunamadı. Lütfen tekrar deneyin.');
    }
  except
    ShowMessage('Giriş sırasında bir hata oluştu: ' + LastExceptionMessage);
}
}

{
  SqLiteConnectionCreateTable; 
  ShowAnaSayfa; 
}




-------------
Mustafa Çetin



Cevaplar:
Mesajı Yazan: BilalCndn
Mesaj Tarihi: 29 Ağustos 2024 Saat 17:38
Merhaba Mustafa,

Hatanın tam halini paylaşır mısın?


-------------
Bilal Candan

Atiker Yazılım Veri İşlem A.Ş.
Software Developer

[email protected]


Mesajı Yazan: MustafaCetin
Mesaj Tarihi: 29 Ağustos 2024 Saat 17:44
Not Kaydı sırasında bir hata oluştu:Access violation at address 00A7A564 in moulde'ClomosyLearn.exe'.Read of address 0000000 
hata bu kullanıcı kayıt olabiliyor giriş yapıyor ve bu veriler sqlite da gözüküyor . Not kayıt için sqlite da tablo oluşturuyor ama not için veri oluşturmuyor.

-------------
Mustafa Çetin


Mesajı Yazan: BilalCndn
Mesaj Tarihi: 29 Ağustos 2024 Saat 18:04
Merhaba Mustafa,

Not ekle sayfasındaki form ve nesneleri 'ShowNotEkleScreen' void'i içerisinde tanımladığın için diğer voidlerin içerisinden erişemezsin. var kısmındaki nesneleri global olarak tanımlarsan sorunun çözülecektir.

İyi çalışmalar dilerim.


-------------
Bilal Candan

Atiker Yazılım Veri İşlem A.Ş.
Software Developer

[email protected]



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net