|
Unutmayayım diye yazdıklarım... |
Logo Unity API'de SqlClause Kullanımı14.01.2010 tarihinde oğuzhan tarafından yazıldı.Daha önce yazmış odluğum Logo API' ile ilgili yazıyı referans göstererek yazılmış bir çok e-posta alıyorum. Genelde e-posta içeriği SqlClause kullanımı ile alakalı olduğu için genel bir örnek yapıp burdan paylaşayım dedim.Senaryomuz şöyle; Logo üzerindeki bir carinin logo üzerindeki kodu ve ismini getiren bir sorgu yazmak istiyoruz. Bunun için de Logo api'sinde ki veritabanını bozmamak ve stabil, iyi sorgular oluşturmak için tasarlanmış SqlClause sorgu sınıfını kullanacağız. Bu sınıf'ı kullanarak yazdığınız sorgular kesinlikle logo'nun seveceği sorgular olup, sistem üzerinde herhangi bir probleme neden olmaz, kendileride zaten bu yöntemi öneriyorlar. "Unity Object kullanıcılara query yazmak için IQuery nesnesini sağlamıştır. IQuery nesnesi ile Select tipindeki queryleri çalıştırmak hem çok kolay hemde çok hızlıdır. Querylerle veri ilişkisini bozabileceğinden insert, update veya delete tipindeki queryleri çalıştırma tavsiye edilmez, fakat IQuery nesnesi bu tür queryleri çalıştırmanızada izin verecektir. Gelelim kod örneğine; Ben .Net üzerinde C# kullanarak bir console uygulaması olarak geliştirdim. class Program { static void Main(string[] args) { ARP_List(); } static void ARP_List() { bool eof = false; //COM bileşeni referansı oluşturuluyor UnityApplication unity = new UnityApplication(); if (unity.Connect()) { // Logo kullanıcısı ile giriş yapılıyor if (unity.UserLogin("LOGO_KULLANICISI", "SIFRE")) { // Hangi firma üzerinde işlem yapılacağı "firma no" ile belirleniyor. if (unity.CompanyLogin(310)) { //Yeni bir sql sorgusu çalıştırmak istediğimizi belirtiyoruz. Query qr = unity.NewQuery(); // Gerekli olan alanları (field) SelectClause ile belirtiyoruz. qr.SQLClause.SelectClause.New("A.CODE", "code"); qr.SQLClause.SelectClause.New("A.DEFINITION_", "def"); // Hangi tablo ile veri işleyeceğimizi belirtiyoruz. qr.SQLClause.FromClause.NewTable("LG_310_CLCARD", "A"); // Sorgumuzun kriterlerini belirtiyoruz. // Burda CODE'u 100'e eşit olan firmalar listeleniyor. qr.SQLClause.WhereClause.New("A.CODE", RelationalOperator.roEqual, "100", LogicalOperator.loNone); //SQLClause ile oluşturulan sorgunun çıktısı Statement özelliğine atanıyor. qr.Statement = qr.SQLClause.SQL; // Sorguyu çalıştırıyoruz. if (qr.OpenDirect()) { eof = qr.First(); //İlk kayıt isteniyor. Yoksa false döner; //First(); ile alınan ilk kayıt bilgisi okunuyor. while (eof) { Console.WriteLine("{0}\t{1}", qr.QueryFields[0].Value, qr.QueryFields[1].Value); eof = qr.Next(); // Sonraki kayıt isteniyor. Yoksa false döner; } } qr.Close(); // Sorgumuzu kapatıyoruz. } unity.CompanyLogout(); } unity.UserLogout(); } unity.Disconnect(); } } Açıklamaları kodun içine yazdığım için tekrardan açıklamak gereği duymadım. Umarım yardımcı olur... #Salih Truan+, 03.03.2010 15:59:28 tarihinde demiş ki... Selam hocam ben kodu kopyaladım ama bende Query nesnesıne hata verıyor, sanırım bıseyi yanlış yaptım#Sebahattin KOÇ-, 15.04.2010 15:47:10 tarihinde demiş ki... qr.SQLClause.WhereClause.New("A.CODE", RelationalOperator.roEqual, "100", LogicalOperator.loNone);#Oğuzhan-, 15.04.2010 15:58:18 tarihinde demiş ki... Düzeltme için teşekkürler Sebahattin.#Mert KUŞCUGİL-, 17.05.2010 11:21:42 tarihinde demiş ki... Oğuzhan bey merhaba.#Yunus Emre+, 13.07.2010 11:45:04 tarihinde demiş ki... Merhaba Oğuzhan , |
En çok ilgi görenler... HP IPAQ 914c Rastgele birşeyler... MonoDevelop 1.0... Şebeke WHT, Fıroİş, Denizİş, Serkan, Semih, Sewgi, Beşir, İzgençvos, Erkan, Mumin, Aliİş, Lütfü, Alper, Yusuf |
|
2003 - Oğuzhan YILMAZ Web Hosting Sponsor Vargonen Technologiies |