Örneğimizde Devart UniDac bileşenlerini kullanarak uzaktaki bir MySQL veritabanından direkt olarak olarak veri çekip, veri yazmayı denedim.
İlk olarak MySQL veritabanına sahip değilsek MySQL indirip bilgisayarımıza kuruyoruz. Kurulum bittikten sonra MySQL WorkBench uygulamasını çalıştırıyoruz. Varsayılan olarak Veritabanlarında "Test" diye bir veritabanı mevcut. Eğer yoksa Test diye bir veritabanı açıyoruz ve altına "adsoyad" diye bir tablo oluşturuyoruz ve aşağıdaki alanları açıyoruz.
Alan Adı
|
Veri Tipi
|
idADSOYAD
|
İnt
|
AD
|
Varchar(45)
|
SOYAD
|
Varchar(45)
|
Tablomuz artık hazır. Şimdi Delphi tarafına geçelim.
File > New > FireMonkey Mobile Application kısmından Blank Application'ı seçiyoruz.
Formumuza 2 adet Tlabel, 2 adet TEdit, 1 adet TGrid, 1 adet TButton ve Veritabanı gereçlerinden de UniConnection ,UniQuery, MySQLUniProvider nesnelerini forma sürüklüyoruz.
UniConnection nesnesine sağ tık menüsünde yer alan Connection Editor menüsünden connection ayarlarımızı yapıyoruz.
UniQuery nesnemizin içine sorgumuzu yazıyoruz, gride bind edebilmemiz için query'i bir kere open ediyoruz. Daha sonra TGrid nesnemize sağ tıklayarak Bind Visualy seçeneğini tıklayarak UniQuery nesnemizdeki alanlarımızı TGrid nesnesi üzerindeki Yıldız(*) sembolüne sürüklüyoruz.
Formun create event'ında Query nesnemizi açalım :
procedure TForm2.FormCreate(Sender: TObject);
begin
UniQuery1.Close;
UniQuery1.SQL.Text := 'SELECT * FROM test.ADSOYAD;';
UniQuery1.Open;
end;
Forma yerleştirdiğimiz Button'un Text özelliğine "Kaydet" yazıyoruz ve click event'ına aşağıdaki kaydetme kodunu yazıyoruz.
procedure TForm2.Button1Click(Sender: TObject);
begin
UniQuery1.Insert;
UniQuery1.FieldByName('AD').AsString := Edit1.Text.Trim();
UniQuery1.FieldByName('SOYAD').AsString := Edit2.Text.Trim();
UniQuery1.Post;
Edit1.Text := '';
Edit2.Text := '';
end;
Son olarak uygulamamızı iOS Simulator'de çalıştırıyoruz.
Yeniden görüşmek dileğiyle...
Bilgilendirme icin tesekkur ederim.
YanıtlaSilEn kisa surede deneme surumunu indirip kurcalamak lazim.
Merhaba, şu satırda "UniQuery1.Close;" close için uniquery'nin üyesi değil hatası veriyor, gerçekten de unidac'ın sitesine baktığımda uni sınıfının close nesnesinin olmadığını gördüm. Acaba ben mi bir yerde yanlış yapıyorum. Siz nasıl çalıştırdınız?
YanıtlaSilUniquery nesnesinin close methodu mevcut, yanlış bir yükleme yapmış olabilirsiniz. Google üzerinden de Uniquery1.Close diye arattığınızda DevArt'ın kendi sitesi dahil birçok başlık olduğunu göreceksiniz.
YanıtlaSilSaygılarımla