![]() |
| Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
EAccessViolation hatası |
Yanıt Yaz
|
| Yazar | |
Melih
Yeni Üye
Kayıt Tarihi: 09 Şubat 2026 Durum: Aktif Değil Puanlar: 22 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: EAccessViolation hatasıGönderim Zamanı: 6 Saat 53 Dakika Önce Saat 14:07 |
|
Veritabanımdan veri çekmeye çalışırken EAccessViolation hatası alıyorum. Veriyi çekerken kullandığım query ve veritabanımı githubdan aldığım kodun içindekilerle değiştirdiğimde düzgün çalışıyor fakat kendi kodumda neden çalışmadığını anlamadım.
Yardımcı olabilir misiniz? https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous"> var MyForm: TclForm; addNewTaskButton: TClProButton; bottomPanel: TCLPanel; middlePanel: TCLPanel; topPanel: TCLPanel; toDoIcon: TCLImage; insertQuery: TclSqlQuery; ToDoListView: TClProListView; retrieveButton: TCLButton; void onAddButtonClick; { Clomosy.RunUnit('uCreateToDo'); } void onIconClick; { Clomosy.RunUnit('uToDoList'); } void retrieveCurrentDayItems; var Qry :TClSQLiteQuery; var dayNow: String; { dayNow = FormatDateTime('dd.mm.yyyy',Now); try qry = nil; Qry = Clomosy.DBSQLiteQueryWith('SELECT * FROM todo_items WHERE due_date = '+QuotedStr(dayNow)+' ORDER BY CAST(item_order AS INTEGER) ASC;'); Qry.OpenOrExecute; while (not Qry.EOF) { if(ToDoListView <> nil) ToDoListView.clLoadProListViewDataFromDataset(Qry); else ShowMessage('not created'); } except ShowMessage('retrieveCurrentDayItems Exception Class: '+LastExceptionClassName+' Exception GetData Message: '+LastExceptionMessage); } } void SqLiteConnection; var TableExists: Boolean; { try Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'DBToDoApp.db3', ''); Clomosy.DBSQLiteQuery.Sql.Text = 'SELECT name FROM sqlite_master WHERE type="table" AND name="todo_items";'; Clomosy.DBSQLiteQuery.OpenOrExecute; TableExists = not Clomosy.DBSQLiteQuery.Eof; if not (TableExists) { ToDoListView.clearList; ShowMessage('Table does not exist'); } else { ShowMessage('Dddatabase connected and table exists'); retrieveCurrentDayItems; } except ShowMessage('connectionfunc Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage); } } { MyForm=TclForm.Create(self); MyForm.LytTopBar.Visible = False; topPanel=MyForm.AddNewPanel(MyForm,'topPanel'); topPanel.Align=alMostTop; topPanel.Height=110; middlePanel=MyForm.AddNewPanel(MyForm, 'middlePanel'); middlePanel.Align=alCenter; middlePanel.Height=350; bottomPanel=MyForm.AddNewPanel(MyForm,'bottomPanel'); bottomPanel.Height=110; bottomPanel.Align=alMostBottom; bottomPanel.StyleLookup='pushpanel'; ToDoListView = MyForm.AddNewProListView(middlePanel,'ToDoListView'); ToDoListView.Align = alCenter; ToDoListView.Width = MyForm.clWidth/2; ToDoListView.Margins.Right = 10; ToDoListView.Margins.Bottom = 10; ToDoListView.Margins.Left = 10; ToDoListView.clProSettings.ViewType = lvWaterFall; ToDoListView.clProSettings.IsRound = True; ToDoListView.clProSettings.IsFill = True; ToDoListView.clProSettings.ColCount = 1; ToDoListView.clProSettings.ItemHeight = 150; ToDoListView.clProSettings.ItemSpace = 5; ToDoListView.clProSettings.BorderColor = clAlphaColor.clHexToColor('#20B2AA'); ToDoListView.clProSettings.BorderWidth = 1; ToDoListView.clProSettings.RoundWidth = 3; ToDoListView.clProSettings.RoundHeight = 3; ToDoListView.SetclProSettings(ToDoListView.clProSettings); retrieveButton=MyForm.AddNewButton(MyForm,'retrieveButton', 'Retrieve'); toDoIcon=MyForm.AddNewImage(topPanel,'toDoIcon'); MyForm.SetImage(toDoIcon,'https://w7.pngwing.com/pngs/32/64/png-transparent-to-do-list-notebook-computer-icons-action-item-task-android-to-do-list-icon-miscellaneous-angle-text-thumbnail.png'); toDoIcon.Align=alMostRight; toDoIcon.Width=40; toDoIcon.Height=40; toDoIcon.Margins.Top=0; toDoIcon.Margins.Right=30; addNewTaskButton=MyForm.AddNewProButton(bottomPanel, 'addNewTaskButton', '+'); addNewTaskButton.Align = alMostRight; addNewTaskButton.Margins.Right=30; addNewTaskButton.Margins.Bottom=30; addNewTaskButton.Width=80; addNewTaskButton.Height=80; addNewTaskButton.clProSettings.FontSize=60; addNewTaskButton.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#4fa5ab'); addNewTaskButton.clProSettings.RoundHeight=40; addNewTaskButton.clProSettings.RoundWidth=40; addNewTaskButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); addNewTaskButton.clProSettings.FontVertAlign=palCenter; addNewTaskButton.SetclProSettings(addNewTaskButton.clProSettings); MyForm.AddNewEvent(addNewTaskButton,tbeOnClick,'onAddButtonClick'); MyForm.AddNewEvent(toDoIcon,tbeOnClick,'onIconClick'); MyForm.AddNewEvent(retrieveButton,tbeOnClick,'retrieveCurrentDayItems'); SqLiteConnection; MyForm.Run; } |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 620 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 38 Dakika Önce Saat 18:22 |
|
Kodda hatanın sebebi temel hata retrieveCurrentDayItems içerisinde yer döngü mantığı
clLoadProListViewDataFromDataset fonksiyonu kendisine verilen sorgu sonucunda tüm verileri otomatik olarak döngüye alıp listeye ekliyor. Bu fonksiyonu while döngüsü içersine alındığın da döngü içerisinde Qry.Next yapılmadığın da sonsuz bir döngü oluşuyor ve hafıza hatası veriyor. while (not Qry.EOF) bloğunu silip sadece clLoadProListViewDataFromDataset(Qry); satırını bırakara dener misin |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |