Sayfayı Yazdır | Pencereyi Kapat

HATA

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=935
Tarih: 06 Ocak 2025 Saat 13:18
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: HATA
Mesajı Yazan: kacar.nursena
Konu: HATA
Mesaj Tarihi: 17 Eylül 2024 Saat 15:41
Merhaba ,
kodumda :
  var
  mainform: TclForm;
  AtistirmaliklarPage: TclProPanel;
  Button: TclProButton;
  ProductID: Integer;
  ProductName: string;
  ProductPrice: Double;
  ProductImageURL: string;
  insertQuery, ProductQuery: TclSqlQuery;
  pricelabel, namelabel: TclProLabel;
 edtProductID,edtProductName, edtProductPrice, edtProductImageURL: TclEdit;
  i, previousButtonLeft, previousButtonTop: Integer;

// Veritabanına veri ekleme prosedürü
procedure insertToDatabase;
begin
 insertQuery:= TclSqlQuery.Create(nil);
  try
    insertQuery.Connection := Clomosy.DBSQLServerConnection;
    insertQuery.SQL.Text := 'INSERT INTO Cart (ProductID,ProductName, ProductPrice, ProductImageURL) ' +
                             'VALUES (' +QuotedStr(edtProductID.Text)  + ', ' + QuotedStr(edtProductName.Text)+','+
                             QuotedStr(edtProductPrice.Text) + ', ' + 
                             QuotedStr(edtProductImageURL.Text) + ');';
    insertQuery.ExecSql;
    ShowMessage('Veri ekleme başarılı');
  except
    ShowMessage('Exception class: ' + LastExceptionClassName +
                ' Exception Message: ' + LastExceptionMessage);
  end;
end;

// Veritabanı bağlantısını kurma prosedürü
procedure SetupDatabaseConnection;
begin
  try
    Clomosy.DBSQLServerConnect('SQL Server', 'su-db.database.windows.net','dbAdmin','Azure1234','suDb', 1433);
    ShowMessage('Veritabanı bağlantısı başarıyla kuruldu!');
  except
    ShowMessage('Veritabanı bağlantısı kurulamadı: ' + LastExceptionMessage);
  end;
end;

// Ürünleri sayfaya yükleme prosedürü
procedure LoadProductsToPage;
begin
  ProductQuery := TclSqlQuery.Create(nil);
  try
    ProductQuery.Connection := Clomosy.DBSQLServerConnection;
    ProductQuery.SQL.Text := 'SELECT ProductID, ProductName, ProductPrice, ProductImageURL FROM Products';
    ProductQuery.Open;

    previousButtonLeft := 10;  // İlk butonun sol kenardan uzaklığı
    previousButtonTop := 800;   // İlk butonun üst kenardan uzaklığı
    i := 0;

    while not ProductQuery.Eof do
    begin
      try
        ProductID := ProductQuery.FieldByName('ProductID').AsInteger;
        ProductName := ProductQuery.FieldByName('ProductName').AsString;
        ProductPrice := ProductQuery.FieldByName('ProductPrice').AsFloat;
        ProductImageURL := ProductQuery.FieldByName('ProductImageURL').AsString;

        // Yeni buton oluşturma
        Button := mainform.AddNewProButton(AtistirmaliklarPage, 'Button' + IntToStr(i), '');
        mainform.AddNewEvent(Button, tbeOnClick, 'InsertToDatabase');
        
        // Buton boyut ve pozisyon
        Button.Width := 150;
        Button.Height := 150;
        // Butonun yerleşimi (yatay ve dikey)
        if (ProductID mod 2 = 1) then
        begin
          // Tek butonlar, sol tarafa hizalanacak
          Button.Margins.Bottom := previousButtonTop; // Önceki butonun altına yerleştirmek için
          Button.Margins.Right := 0;  // Sol tarafa hizalanacak
          Button.Margins.Left := 10; 

          // Sonraki butonun üst mesafesini güncelle
          previousButtonTop := Button.Top - Button.Height - 10;
        end
        else
        begin
          // Çift butonlar, teklerin yanında yer alacak
          Button.Margins.Bottom := previousButtonTop;  // Önceki butonla aynı hizaya yerleştirmek için
          Button.Margins.Right := 300;  // Teklerin yanında olacak
          Button.Margins.Left := previousButtonLeft;

          // Sonraki butonun sol mesafesini güncelle
          previousButtonLeft := Button.Left - Button.Width - 10;
        end;

        // Ürün resmini butona ekleme
        if Assigned(mainform) then
          mainform.SetImage(Button, ProductImageURL);

        // Ürün adını göstermek için etiket oluşturma
        namelabel := mainform.AddNewProLabel(AtistirmaliklarPage, 'namelabel' + IntToStr(i), '');
        namelabel.Margins.Bottom := Button.Margins.Bottom - Button.Height - 5;  // Butonun hemen altında
        namelabel.Margins.Left := Button.Margins.Left; // Butonla hizalı
        namelabel.Margins.Right := Button.Margins.Right;
        namelabel.Text := ProductName;

        // Ürün fiyatını göstermek için etiket oluşturma
        pricelabel := mainform.AddNewProLabel(AtistirmaliklarPage, 'pricelabel' + IntToStr(i), '');
        pricelabel.Margins.Bottom := namelabel.Margins.Bottom - namelabel.Height - 5;  // Ürün adının altında
        pricelabel.Margins.Left := namelabel.Margins.Left; // Butonla hizalı
        pricelabel.Margins.Right := namelabel.Margins.Right;
        pricelabel.Text := Format('Fiyat: %.2f TL', [ProductPrice]);

        ProductQuery.Next;
        Inc(i); // i'yi 1 artır
      except
        ShowMessage('Ürün bilgileri işlenirken hata: ' + LastExceptionMessage);
      end;
    end;
  finally
    ProductQuery.Close;
    ProductQuery.Free;
  end;
end;

// Ürün ekleme sayfasını oluşturma prosedürü
procedure AddProductPage;
begin
  try
    AtistirmaliklarPage := mainform.AddNewProPanel(mainform, 'AtistirmaliklarPage');
    if Assigned(AtistirmaliklarPage) then
    begin
      AtistirmaliklarPage.Align := alNone;  // Manuel hizalama
      AtistirmaliklarPage.Width := 600;     // Panel genişliği
      AtistirmaliklarPage.Height := 800;    // Panel yüksekliği
      AtistirmaliklarPage.Left := 50;       // Panelin sol kenardan uzaklığı
      AtistirmaliklarPage.Top := 50;        // Panelin üst kenardan uzaklığı
      AtistirmaliklarPage.Margins.Left := 10;
      AtistirmaliklarPage.Margins.Right := 10;
      AtistirmaliklarPage.Margins.Top := 5;
      AtistirmaliklarPage.Margins.Bottom := 10;
      AtistirmaliklarPage.clProSettings.BackgroundColor := clAlphaColor.clHexToColor('#ffffff');
      AtistirmaliklarPage.SetclProSettings(AtistirmaliklarPage.clProSettings);

      // Ürünleri sayfaya yükle
      LoadProductsToPage;
    end
    else
      ShowMessage('Atıştırmalıklar sayfası oluşturulamadı');
  except
    ShowMessage('Panel oluşturulurken hata: ' + LastExceptionMessage);
  end;
end;

// Ana program akışı
begin
  mainform := TclForm.Create(nil);
  try
    mainform.SetFormColor('#CBEDD5', '', clGNone);
    /*
    edtProductID := mainform.AddNewEdit(mainform, 'edtProductID', 'ProductID');
    edtProductID.Margins.Right := 150;
  
    edtProductName := mainform.AddNewEdit(mainform, 'edtProductName', 'ProductName');
    edtProductName.Margins.Left := 150;
  
  
    edtProductPrice := mainform.AddNewEdit(mainform, 'edtProductPrice', 'ProductPrice');
    edtProductPrice.Margins.Left := 150;
  
  
    edtProductImageURL := mainform.AddNewEdit(mainform, 'edtProductImageURL', 'ProductImageURL');
    edtProductImageURL.Margins.Left := 150;
    */
    insertToDatabase;
    SetupDatabaseConnection;
    AddProductPage;
    mainform.Run;
  except
    ShowMessage('Ana form çalıştırılırken hata: ' + LastExceptionMessage);
  end;
end.

sanırım insertodatabase kısmında try'a girmiyor aşağıdakı hatayı alıyorum:
var
  mainform: TclForm;
  AtistirmaliklarPage: TclProPanel;
  Button: TclProButton;
  ProductID: Integer;
  ProductName: string;
  ProductPrice: Double;
  ProductImageURL: string;
  insertQuery, ProductQuery: TclSqlQuery;
  pricelabel, namelabel: TclProLabel;
 edtProductID,edtProductName, edtProductPrice, edtProductImageURL: TclEdit;
  i, previousButtonLeft, previousButtonTop: Integer;

// Veritabanına veri ekleme prosedürü
procedure insertToDatabase;
begin
 insertQuery:= TclSqlQuery.Create(nil);
  try
    insertQuery.Connection := Clomosy.DBSQLServerConnection;
    insertQuery.SQL.Text := 'INSERT INTO Cart (ProductID,ProductName, ProductPrice, ProductImageURL) ' +
                             'VALUES (' +QuotedStr(edtProductID.Text)  + ', ' + QuotedStr(edtProductName.Text)+','+
                             QuotedStr(edtProductPrice.Text) + ', ' + 
                             QuotedStr(edtProductImageURL.Text) + ');';
    insertQuery.ExecSql;
    ShowMessage('Veri ekleme başarılı');
  except
    ShowMessage('Exception class: ' + LastExceptionClassName +
                ' Exception Message: ' + LastExceptionMessage);
  end;
end;

// Veritabanı bağlantısını kurma prosedürü
procedure SetupDatabaseConnection;
begin
  try
    Clomosy.DBSQLServerConnect('SQL Server', 'su-db.database.windows.net','dbAdmin','Azure1234','suDb', 1433);
    ShowMessage('Veritabanı bağlantısı başarıyla kuruldu!');
  except
    ShowMessage('Veritabanı bağlantısı kurulamadı: ' + LastExceptionMessage);
  end;
end;

// Ürünleri sayfaya yükleme prosedürü
procedure LoadProductsToPage;
begin
  ProductQuery := TclSqlQuery.Create(nil);
  try
    ProductQuery.Connection := Clomosy.DBSQLServerConnection;
    ProductQuery.SQL.Text := 'SELECT ProductID, ProductName, ProductPrice, ProductImageURL FROM Products';
    ProductQuery.Open;

    previousButtonLeft := 10;  // İlk butonun sol kenardan uzaklığı
    previousButtonTop := 800;   // İlk butonun üst kenardan uzaklığı
    i := 0;

    while not ProductQuery.Eof do
    begin
      try
        ProductID := ProductQuery.FieldByName('ProductID').AsInteger;
        ProductName := ProductQuery.FieldByName('ProductName').AsString;
        ProductPrice := ProductQuery.FieldByName('ProductPrice').AsFloat;
        ProductImageURL := ProductQuery.FieldByName('ProductImageURL').AsString;

        // Yeni buton oluşturma
        Button := mainform.AddNewProButton(AtistirmaliklarPage, 'Button' + IntToStr(i), '');
        mainform.AddNewEvent(Button, tbeOnClick, 'InsertToDatabase');
        
        // Buton boyut ve pozisyon
        Button.Width := 150;
        Button.Height := 150;
        // Butonun yerleşimi (yatay ve dikey)
        if (ProductID mod 2 = 1) then
        begin
          // Tek butonlar, sol tarafa hizalanacak
          Button.Margins.Bottom := previousButtonTop; // Önceki butonun altına yerleştirmek için
          Button.Margins.Right := 0;  // Sol tarafa hizalanacak
          Button.Margins.Left := 10; 

          // Sonraki butonun üst mesafesini güncelle
          previousButtonTop := Button.Top - Button.Height - 10;
        end
        else
        begin
          // Çift butonlar, teklerin yanında yer alacak
          Button.Margins.Bottom := previousButtonTop;  // Önceki butonla aynı hizaya yerleştirmek için
          Button.Margins.Right := 300;  // Teklerin yanında olacak
          Button.Margins.Left := previousButtonLeft;

          // Sonraki butonun sol mesafesini güncelle
          previousButtonLeft := Button.Left - Button.Width - 10;
        end;

        // Ürün resmini butona ekleme
        if Assigned(mainform) then
          mainform.SetImage(Button, ProductImageURL);

        // Ürün adını göstermek için etiket oluşturma
        namelabel := mainform.AddNewProLabel(AtistirmaliklarPage, 'namelabel' + IntToStr(i), '');
        namelabel.Margins.Bottom := Button.Margins.Bottom - Button.Height - 5;  // Butonun hemen altında
        namelabel.Margins.Left := Button.Margins.Left; // Butonla hizalı
        namelabel.Margins.Right := Button.Margins.Right;
        namelabel.Text := ProductName;

        // Ürün fiyatını göstermek için etiket oluşturma
        pricelabel := mainform.AddNewProLabel(AtistirmaliklarPage, 'pricelabel' + IntToStr(i), '');
        pricelabel.Margins.Bottom := namelabel.Margins.Bottom - namelabel.Height - 5;  // Ürün adının altında
        pricelabel.Margins.Left := namelabel.Margins.Left; // Butonla hizalı
        pricelabel.Margins.Right := namelabel.Margins.Right;
        pricelabel.Text := Format('Fiyat: %.2f TL', [ProductPrice]);

        ProductQuery.Next;
        Inc(i); // i'yi 1 artır
      except
        ShowMessage('Ürün bilgileri işlenirken hata: ' + LastExceptionMessage);
      end;
    end;
  finally
    ProductQuery.Close;
    ProductQuery.Free;
  end;
end;

// Ürün ekleme sayfasını oluşturma prosedürü
procedure AddProductPage;
begin
  try
    AtistirmaliklarPage := mainform.AddNewProPanel(mainform, 'AtistirmaliklarPage');
    if Assigned(AtistirmaliklarPage) then
    begin
      AtistirmaliklarPage.Align := alNone;  // Manuel hizalama
      AtistirmaliklarPage.Width := 600;     // Panel genişliği
      AtistirmaliklarPage.Height := 800;    // Panel yüksekliği
      AtistirmaliklarPage.Left := 50;       // Panelin sol kenardan uzaklığı
      AtistirmaliklarPage.Top := 50;        // Panelin üst kenardan uzaklığı
      AtistirmaliklarPage.Margins.Left := 10;
      AtistirmaliklarPage.Margins.Right := 10;
      AtistirmaliklarPage.Margins.Top := 5;
      AtistirmaliklarPage.Margins.Bottom := 10;
      AtistirmaliklarPage.clProSettings.BackgroundColor := clAlphaColor.clHexToColor('#ffffff');
      AtistirmaliklarPage.SetclProSettings(AtistirmaliklarPage.clProSettings);

      // Ürünleri sayfaya yükle
      LoadProductsToPage;
    end
    else
      ShowMessage('Atıştırmalıklar sayfası oluşturulamadı');
  except
    ShowMessage('Panel oluşturulurken hata: ' + LastExceptionMessage);
  end;
end;

// Ana program akışı
begin
  mainform := TclForm.Create(nil);
  try
    mainform.SetFormColor('#CBEDD5', '', clGNone);
    /*
    edtProductID := mainform.AddNewEdit(mainform, 'edtProductID', 'ProductID');
    edtProductID.Margins.Right := 150;
  
    edtProductName := mainform.AddNewEdit(mainform, 'edtProductName', 'ProductName');
    edtProductName.Margins.Left := 150;
  
  
    edtProductPrice := mainform.AddNewEdit(mainform, 'edtProductPrice', 'ProductPrice');
    edtProductPrice.Margins.Left := 150;
  
  
    edtProductImageURL := mainform.AddNewEdit(mainform, 'edtProductImageURL', 'ProductImageURL');
    edtProductImageURL.Margins.Left := 150;
    */
    insertToDatabase;
    SetupDatabaseConnection;
    AddProductPage;
    mainform.Run;
  except
    ShowMessage('Ana form çalıştırılırken hata: ' + LastExceptionMessage);
  end;
end.



Cevaplar:
Mesajı Yazan: kacar.nursena
Mesaj Tarihi: 17 Eylül 2024 Saat 18:01
hatanın ekran görüntüsü:


Mesajı Yazan: kacar.nursena
Mesaj Tarihi: 17 Eylül 2024 Saat 18:03


Mesajı Yazan: Developer
Mesaj Tarihi: 17 Eylül 2024 Saat 18:11
Merhaba NurSena,
Hata nın resmi görünmüyor.


Mesajı Yazan: kacar.nursena
Mesaj Tarihi: 17 Eylül 2024 Saat 18:23
uploads/226/resim_2024-09-17_182212081.png" rel="nofollow - uploads/226/resim_2024-09-17_182212081.png


Mesajı Yazan: kacar.nursena
Mesaj Tarihi: 17 Eylül 2024 Saat 18:24


Mesajı Yazan: Developer
Mesaj Tarihi: 19 Eylül 2024 Saat 14:06
Merhaba NurSena,
Aşağıdaki sorgu da edtProductPrice tanımlama yapmadığın için bu hatayı alıyorsun.
 insertQuery.SQL.Text := 'INSERT INTO Cart (ProductID,ProductName, ProductPrice, ProductImageURL) ' +
                             'VALUES (' +QuotedStr(edtProductID.Text)  + ', ' + QuotedStr(edtProductName.Text)+','+
                             QuotedStr(edtProductPrice.Text) + ', ' + 
                             QuotedStr(edtProductImageURL.Text) + ');';
    insertQuery.ExecSql;
    ShowMessage('Veri ekleme başarılı');



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