Sayfayı Yazdır | Pencereyi Kapat

execute select hatası

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=1125
Tarih: 25 Temmuz 2025 Saat 03:52
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: execute select hatası
Mesajı Yazan: kübra
Konu: execute select hatası
Mesaj Tarihi: 23 Temmuz 2025 Saat 13:49
var 
  RegisterForm: TclForm;
  UsernameEdit, PasswordEdit, PasswordAgainEdit, EmailEdit, PhoneEdit, PlateEdit: TclProEdit;
  RegisterBtn, BackToLoginBtn: TclProButton;
  MainPanel: TclProPanel;
  TitleLbl: TclProLabel;
  HiddenPasswordBtn, NormalPasswordBtn: TclProButton;
  HiddenPasswordAgainBtn, NormalPasswordAgainBtn: TclProButton;
  CheckQuery, InsertQuery, TableCreateQuery: TclSQLiteQuery;

void BackToLoginBtnClick;
{
  Clomosy.RunUnit('UnitLogin');
}

void RegisterBtnClick;
{
  try
  {
    if Length(Trim(UsernameEdit.Text)) == 0 || 
       Length(Trim(PasswordEdit.Text)) == 0 || 
       Length(Trim(PasswordAgainEdit.Text)) == 0 || 
       Length(Trim(EmailEdit.Text)) == 0 || 
       Length(Trim(PhoneEdit.Text)) < 10 ||
       Length(Trim(PlateEdit.Text)) == 0
    {
      ShowMessage('Lütfen tüm alanları doldurun.');
      Exit;
    }

    if PasswordEdit.Text <> PasswordAgainEdit.Text
    {
      ShowMessage('Şifreler uyuşmuyor!');
      Exit;
    }

    TableCreateQuery = Clomosy.DBSQLiteQueryWith(
      'CREATE TABLE IF NOT EXISTS Users (' +
      'ID INTEGER PRIMARY KEY AUTOINCREMENT, ' +
      'Username TEXT, Password TEXT, Email TEXT, Phone TEXT, Plate TEXT)');
    TableCreateQuery.OpenOrExecute;

    CheckQuery = Clomosy.DBSQLiteQueryWith(
      'SELECT * FROM Users WHERE Username = ' + QuotedStr(UsernameEdit.Text));
    CheckQuery.OpenOrExecute;

    if CheckQuery.Found
    {
      ShowMessage('Bu kullanıcı adı zaten kayıtlı!');
      Exit;
    }

    InsertQuery = Clomosy.DBSQLiteQueryWith(
  'INSERT INTO Users (Username, Password, Email, Phone, Plate) VALUES (' +
  QuotedStr(UsernameEdit.Text) + ', ' +
  QuotedStr(PasswordEdit.Text) + ', ' +
  QuotedStr(EmailEdit.Text) + ', ' +
  QuotedStr(PhoneEdit.Text) + ', ' +
  QuotedStr(PlateEdit.Text) + '); ' +
  'SELECT "" as dummy');
InsertQuery.OpenOrExecute;

    ShowMessage('Kayıt başarılı! Giriş ekranına yönlendiriliyorsunuz.');
    Clomosy.RunUnit('UnitLogin');
    RegisterForm.Close;
  }
  except
  {
    ShowMessage('Kayıt sırasında hata: ' + LastExceptionMessage);
  }
}
}

{
  RegisterForm = TclForm.Create(Self);
  RegisterForm.SetFormBGImage(' https://resmim.net/cdn/2025/07/21/XjZDYD.jpg" rel="nofollow - https://resmim.net/cdn/2025/07/21/XjZDYD.jpg ');

  MainPanel = RegisterForm.AddNewProPanel(RegisterForm, 'MainPanel');
  MainPanel.Align = alClient;

  TitleLbl = RegisterForm.AddNewProLabel(MainPanel, 'TitleLbl', 'Üye Ol');
  TitleLbl.Align = alTop;
  TitleLbl.Height = 40;
  TitleLbl.Margins.Top = 60;
  TitleLbl.clProSettings.FontSize = 22;
  TitleLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  TitleLbl.SetclProSettings(TitleLbl.clProSettings);

  UsernameEdit = RegisterForm.AddNewProEdit(MainPanel, 'UsernameEdit', 'Kullanıcı Adı');
  UsernameEdit.Align = alTop;
  UsernameEdit.Margins.Top = 50;
  UsernameEdit.clProSettings.IsRound = True;
  UsernameEdit.SetclProSettings(UsernameEdit.clProSettings);

  PasswordEdit = RegisterForm.AddNewProEdit(MainPanel, 'PasswordEdit', 'Şifre');
  PasswordEdit.Align = alTop;
  PasswordEdit.Margins.Top = 10;
  PasswordEdit.Password = True;
  PasswordEdit.clProSettings.IsRound = True;
  PasswordEdit.SetclProSettings(PasswordEdit.clProSettings);

  PasswordAgainEdit = RegisterForm.AddNewProEdit(MainPanel, 'PasswordAgainEdit', 'Şifre Tekrar');
  PasswordAgainEdit.Align = alTop;
  PasswordAgainEdit.Margins.Top = 10;
  PasswordAgainEdit.Password = True;
  PasswordAgainEdit.clProSettings.IsRound = True;
  PasswordAgainEdit.SetclProSettings(PasswordAgainEdit.clProSettings);

  EmailEdit = RegisterForm.AddNewProEdit(MainPanel, 'EmailEdit', 'E-Posta');
  EmailEdit.Align = alTop;
  EmailEdit.Margins.Top = 10;
  EmailEdit.clProSettings.IsRound = True;
  EmailEdit.SetclProSettings(EmailEdit.clProSettings);

  PhoneEdit = RegisterForm.AddNewProEdit(MainPanel, 'PhoneEdit', 'Telefon (10 hane)');
  PhoneEdit.Align = alTop;
  PhoneEdit.Margins.Top = 10;
  PhoneEdit.MaxLength = 10;
  PhoneEdit.KeyboardType = vktPhonePad;
  PhoneEdit.clProSettings.IsRound = True;
  PhoneEdit.SetclProSettings(PhoneEdit.clProSettings);

  PlateEdit = RegisterForm.AddNewProEdit(MainPanel, 'PlateEdit', 'Araç Plakası');
  PlateEdit.Align = alTop;
  PlateEdit.Margins.Top = 10;
  PlateEdit.clProSettings.IsRound = True;
  PlateEdit.SetclProSettings(PlateEdit.clProSettings);

  RegisterBtn = RegisterForm.AddNewProButton(MainPanel, 'RegisterBtn', 'Kayıt Ol');
  RegisterBtn.Align = alTop;
  RegisterBtn.Margins.Top = 25;
  RegisterBtn.clProSettings.IsRound = True;
  RegisterBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#93c1ec');
  RegisterBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  RegisterBtn.SetclProSettings(RegisterBtn.clProSettings);
  RegisterForm.AddNewEvent(RegisterBtn, tbeOnClick, 'RegisterBtnClick');

  BackToLoginBtn = RegisterForm.AddNewProButton(MainPanel, 'BackToLoginBtn', 'Giriş Ekranına Dön');
  BackToLoginBtn.Align = alTop;
  BackToLoginBtn.Margins.Top = 10;
  BackToLoginBtn.clProSettings.IsRound = True;
  BackToLoginBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#93c1ec');
  BackToLoginBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BackToLoginBtn.SetclProSettings(BackToLoginBtn.clProSettings);
  RegisterForm.AddNewEvent(BackToLoginBtn, tbeOnClick, 'BackToLoginBtnClick');

  RegisterForm.Run;
}       

Register kodum yukarıdaki gibi. Çalıştırdığım zaman aşağıdaki hatayı veriyor.

Kayıt sırasında hata:[FireDAC][Phys][SQLite]-308.Cannot open / define command, which does not return result sets.Hint: use Execute/ExecSQL method for non-SELECT commands

Konuda bilgisi olan yardımcı olabilirse çok sevinirim. Teşekkürler.


-------------
kkk



Cevaplar:
Mesajı Yazan: Sudesigirci
Mesaj Tarihi: 23 Temmuz 2025 Saat 14:22
Merhaba Kübra ,   
Clomosy.DBSQLiteQuery.SQL.Text = 
      'INSERT INTO Users (Username, Password, Email, Phone,Plate) VALUES (' +
  QuotedStr(UsernameEdit.Text) + ', ' +
  QuotedStr(PasswordEdit.Text) + ', ' +
  QuotedStr(EmailEdit.Text) + ', ' +
  QuotedStr(PhoneEdit.Text) + ', ' +
  QuotedStr(PlateEdit.Text) + '); ' +
  'SELECT "" as dummy');

    try
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      ShowMessage('Kayıt başarıyla tamamlandı.');
       Clomosy.RunUnit('UnitLogin');
    except
      ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage);
    } bunu koduna entegre edip deneyebilir misin 
iyi çalışmalar dilerim


Mesajı Yazan: kübra
Mesaj Tarihi: 23 Temmuz 2025 Saat 14:35
Merhaba, yazdığın şekilde denedim ama hala aynı hatayı veriyor.

-------------
kkk


Mesajı Yazan: Sudesigirci
Mesaj Tarihi: 23 Temmuz 2025 Saat 15:51
Merhaba Kübra , ben aşağıdaki şekilde entegre ettiğimde bir sorun yaşamadım kodu tekrar deneyebilir misin aşağıdaki şekilde 

void RegisterBtnClick;
{

  
     if Length(Trim(UsernameEdit.Text)) == 0 || 
       Length(Trim(PasswordEdit.Text)) == 0 || 
       Length(Trim(PasswordAgainEdit.Text)) == 0 || 
       Length(Trim(EmailEdit.Text)) == 0 || 
       Length(Trim(PhoneEdit.Text)) < 10 ||
       Length(Trim(PlateEdit.Text)) == 0
    {
      ShowMessage('Lütfen tüm alanları doldurun.');
      Exit;
    }

    if PasswordEdit.Text <> PasswordAgainEdit.Text
    {
      ShowMessage('Şifreler uyuşmuyor!');
      Exit;
    }
  
    Clomosy.DBSQLiteQuery.SQL.Text='CREATE TABLE IF NOT EXISTS Users (' +
      'ID INTEGER PRIMARY KEY AUTOINCREMENT, ' +
      'Username TEXT, Password TEXT, Email TEXT, Phone TEXT, Plate TEXT)';
    Clomosy.DBSQLiteQuery.OpenOrExecute;

    
    Clomosy.DBSQLiteQuery.SQL.Text='SELECT * FROM Users WHERE Username = ' + QuotedStr(UsernameEdit.Text);
    Clomosy.DBSQLiteQuery.OpenOrExecute;

    if (Clomosy.DBSQLiteQuery.Found ){
      ShowMessage('Bu kullanıcı adı zaten kayıtlı!');
      exit;
    }

  
   Clomosy.DBSQLiteQuery.SQL.Text =
      'INSERT INTO Users (Username, Password, Email, Phone, Plate) VALUES (' +
      QuotedStr(UsernameEdit.Text) + ',' +
      QuotedStr(PasswordEdit.Text) + ',' +
      QuotedStr(EmailEdit.Text) + ',' +
      QuotedStr(PhoneEdit.Text) + ',' +
      QuotedStr(PlateEdit.Text) + ')';
      
    try
    Clomosy.DBSQLiteQuery.OpenOrExecute;
    ShowMessage('Kayıt başarılı!');
    Clomosy.RunUnit('UnitLogin');
  
  except
  
    ShowMessage('Hata oluştu: ' + LastExceptionMessage);
  }
}




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