GDB den okunan datayı forma aktarma

Merhabalar, SQL’den, Acces’den ve SQLite veritabanlarına connection oluşturup veri çekerek Tkinter ortamında hazırladığım formu doldurabiliyorum. Ama GDB den çektiğim veriyi forma taşıyamıyorum. Bu konuda yardımcı olabilecek arkadaşlarımızın desteğini bekliyorum.Teşekkür ederim şimdiden.

GDB’den veri geliyor mu? Veriyi form üzerinden ziyade console’a yazdırmayı dene. Veri geliyorsa eğer yazığın kodda hata vardır. Gelmiyorsa çekme şeklin yanlıştır.

1 Beğeni

Teşekkür ederim cevabınız için. Console da verinin geldiğini görebiliyorum. Ancak bu veriyi forma taşıyamıyorum. SearchCurser ile veriyi çekiyorum ama. Başka tavsiyeniz olursa denerim

Kodunu atabilir misin? :confused:

İlginize teşekkür ederim.
Butona tanımladığım bir fonksiyon ile bilgileri forma taşımaya çalışıyorum.

def Bul():
        if(IGDAS_BINA_ID.get()==""):
            MessageBox.showinfo("Bulma Durumu","Aranan kayit bulunamadi.")
        else:
            fc = 'D:\IGABIS\ADRES.gdb\Adres\Yapi'
            #arcpy.env.workspace=os.getcwd()+"\\ADRES.gdb"
            fields = ['IGDAS_BINA_ID', 'Abonelik', 'Kutu1','Kutu2','Kutu3','BR','GazKullanan','ilce','Mahalle','Cadde_Sokak','Kapi_No','Baglanti_Nesnesi_ID']
            expression=("select * Yapi WHERE IGDAS_BINA_ID='"+ IGDAS_BINA_ID.get() +"'")

        with arcpy.da.SearchCursor(fc, fields, where_clause=expression) as cursor:
            for row in cursor:
                YAPI_TURU.insert(0, row[13])
                BR.insert(0, row[34])
                BAGLANTI_NESNESI.insert(0, row[68])
                KUTU1.insert(0, row[20])
                KUTU2.insert(0, row[21])
                KUTU3.insert(0, row[22])
                IGDAS_BINA_ID.insert(0, row[12])                    
                GAZ_KULLANICI.insert(0, row[36])
                ILCE.insert(0, row[77])
                MAHALLE.insert(0, row[78])
                KAPI_NO.insert(0, row[80])

InsertCursor ile yapmayı denedin mi?

Denemedim ama, bildiğim kadarıyla InsertCursor ile herhangi bir database e veri insert edebiliyoruz. Dolayısı ile benim işlemim insert-update-delete işlemlerinden farklı bir işlem.

Cmd’ye veri aktarımını hangi kodla gerçekleştirebiliyorsun?
Belirlenen kod ile cmd üzerine yazabiliyorsak eğer aynı kod dizimiyle tkinter üzerine yazabilmemiz lazım.

Bu kod yeterli oluyor consola veri yazdırmak için.

fc = ‘D:\IGABIS\ADRES.gdb\Adres\Yapi’
#arcpy.env.workspace=os.getcwd()+"\ADRES.gdb"
fields = [‘IGDAS_BINA_ID’, ‘Abonelik’, ‘Kutu1’,‘Kutu2’,‘Kutu3’,‘BR’,‘GazKullanan’,‘ilce’,‘Mahalle’,‘Cadde_Sokak’,‘Kapi_No’,‘Baglanti_Nesnesi_ID’]
expression=(“select * Yapi WHERE IGDAS_BINA_ID=’”+ IGDAS_BINA_ID.get() +"’")

        with arcpy.da.SearchCursor(fc, fields, where_clause=expression) as cursor:
             for row in cursor:
                print('{0}, {1}, {2},{3},{4},{5},{6},{7},{8},{9},{10},{11}'.format(row[0], row[1], row[2],row[3],row[4],row[5],row[6],row[7],row[8],row[9],row[10],row[11]))

Rowlar’da girdiğin numberlar neden farklı? Bölgeye göre mi atama yapıyorsun

Sanki bir hata oldu bir önceki döndüğüm mesajda. Consola veri yazdırmak için aşağıdaki kod yetiyor.

fc = ‘D:\IGABIS\ADRES.gdb\Adres\Yapi’
#arcpy.env.workspace=os.getcwd()+"\ADRES.gdb"
fields = [‘IGDAS_BINA_ID’, ‘Abonelik’, ‘Kutu1’,‘Kutu2’,‘Kutu3’,‘BR’,‘GazKullanan’,‘ilce’,‘Mahalle’,‘Cadde_Sokak’,‘Kapi_No’,‘Baglanti_Nesnesi_ID’]
expression=(“select * Yapi WHERE IGDAS_BINA_ID=’”+ IGDAS_BINA_ID.get() +"’")

        with arcpy.da.SearchCursor(fc, fields, where_clause=expression) as cursor:
             for row in cursor:
                print('{0}, {1}, {2},{3},{4},{5},{6},{7},{8},{9},{10},{11}'.format(row[0], row[1], row[2],row[3],row[4],row[5],row[6],row[7],row[8],row[9],row[10],row[11]))

Herbir bilgiyi form üzerinde farklı alanlara çekmeye çalışıyorum.Görseldeki form alanlarını doldurmaya çalışıyorum yani.

 e1 = Entry(master)
 e1.insert(0,"First Name")

İnternette bulduğum örnekte çekim yerine gönderilmesi lazım

                YAPI_TURU.insert(0, row[1])
                BR.insert(0, row[2])
                BAGLANTI_NESNESI.insert(0, row[3])
                KUTU1.insert(0, row[4])
                KUTU2.insert(0, row[5])
                KUTU3.insert(0, row[6])
                IGDAS_BINA_ID.insert(0, row[7])                    
                GAZ_KULLANICI.insert(0, row[8])
                ILCE.insert(0, row[9])
                MAHALLE.insert(0, row[10])
                KAPI_NO.insert(0, row[11])

Başka çözüm aklıma gelmiyor. Bu şekilde olmalı :confused:

Destekleriniz için çok teşekkür ederim. Çok sağolun. Son yazdığınız bilgilere göre kodu uyarlayıp tekrardan deneyeceğim.

1 Beğeni