GEODI veri tabanlarını yani yapısal verileri de değerlendirebilir. Veri tabanları ve içerdiği dosya bilgileri (gömülü dahil) indexlenebilir(bütün tablolar ve satırlar). Basit kurallar ile tabloları, satırlar veya alanları sınırlayabilir, satırların kullanıcıya nasıl gösterileceğini ayarlayabilirsiniz.

Veri tabanı zaten yapısal bilgi, GEODI burada nasıl bir yarar sağlayabilir?

GEODI’nin sağlayacağı bir kaç önemli fayda var:

  • GEODI veri tabanınızdaki yapısal bilgi ile dosyalarınızdaki yapısal olmayan tek bir noktadan aramanızı sağlar. 
  • Tanıyıcıların Otomatik çıkarttığı bilgiler ile tablo satırları ve dosyalar birbirine bağlanır. Bir kişinin verdiği dilekçe ile daha önceki ruhsat başvurusu otomatik olarak eşlenir. 
  • Birden çok veri tabanınız varsa şemaları aynı olmadığı sürece yapısal olmalarının da bir yararı kalmıyor. GEODI hiç biri birbiri ile uyumlu olmayan veriler arasında kaybolmanızı engeller.

Nasıl Indexlenir?

Veri tabanları çok sayıda tablodan oluşabilir. GEODI varsayılan olarak bütün tabloları gezer ve bütün satırları indexler. Sistem yöneticileri, tabloları ve satırları kısıtlayacak tanımları GEODI üzerinden yapabilirler. İstenirse “view(lar)” tanımlanıp GEODI’nin veri tabanını nasıl göreceği de tanımlanabilir. Oracle, SQL Server, Postgres, Mysql, sqlite, access, shapefile,excel gibi çok farklı sistem/format desteklenir. 

sqlite ve access gibi dosya bazlı olanlar için tanım yapmaya gerek yoktur. Bu dosyalar herhangi bir kaynakta bulunduğu zaman otomatik olarak indexlenirler.  

GEODI ile oluşturduğunuz bağlantı tanımlarını *.dececonnection olarak saklayabilir ve GEODI’nin bu içeriği diğer dosyalar gibi taramasını da sağlayabilirsiniz.

Indexlenen tablo ve satırlar değişmedikleri sürece değişenleri tara işleminde dikkate alınmazlar. Değişen satırların otomatik olarak versiyonu oluşturulacaktır. 

  1. Taranacak tablolarda birincil anahtar bulunması zorunludur. Bu kısıtı bir ayar ile kaldırabilirsiniz ancak birincil alanı olmayan tablolarda değişenleri tara veya versiyonlama özellikleri çalışmayacaktır.
  2. Arama sonuçlarında Geodi Table nesneleri olmasın, sadece kayıtlar olsun isteniyorsa. Enumaratör Detay ayarlarından DisableIndexTables ayarı True yapılmalıdır.
  3. Tablolara gömülü veya tablolar içinde link verilen dosyalar da indexlemeye dahil olabilirler. Bu özelliklerin nasıl çalıştığı bu sayfada anlatılmıştır.
  4. Veri tabanını oluşturan yazılımların sunduğu kısıtlı arama yeteneklerini aşarsınız

Tablo İndexleme Ayarlarının Değiştirilmesi

Settings\Reader\DBMeta

altıdaki jsettings ayar dosyaları ile varsayılan davranışı değiştirebilirsiniz. Aynı ayar dosyası içinde örnekte belirtildiği gibi farklı tablolar veya projeler için farklı ayarlar uygulayabilirsiniz.

(warning) Ayrı ayar tipleri ayrı __type anahtarı ister.

Örnek

{
   "Defines":[
      {
         "__type":"Geodi.Database.Meta.DBSubContent, Geodi.Database",
         "WorkspaceName":"0000-Promotional and Educational Videos",
         "FileFullPathColumnMacro":"[FILEPATH]"
      },
      {
         "__type":"Geodi.Database.Meta.DBView, Geodi.Database",
         "WorkspaceName":"0000-Promotional and Educational Videos",
         "Columns":"-FILEPATH,-SILINECEK,-Hazırlayan,-TARIH,-GEODIFILELINK",
         "TableFilter":"*",
         "ColumnFilter":"*"
      },
      {
         "__type":"Geodi.Database.Meta.DBRowDisplayName, Geodi.Database",
         "WorkspaceName":"0000-Promotional and Educational Videos",
         "DisplayNameMacro":"[TITLE]"
      }
   ]
}

Tablodaki değerler ile ayarların etki alanını sınırlayabilirsiniz. Bütün ayarlarda “*” ile tümü, “-” ile hariç tutulacaklar, “,” ile ayırarak dikkate alınacakları belirleyebilirisiniz.

Key Açıklama
WorkspaceName Ayarların geçerli olacağı WorkSpace(ler).
TableFilter Ayarların geçerli olacağı Tablolar.
ColumnFilter Verilen kolonları içeren tablolar. (- verilirse ilgili kolonları içermeyen tablolar dikkate alınır). Birden çok verilirse ilişki VE dir.

Satırlar GEODI’de nasıl görünür

Veri tabanlarında her kayıt, kayıt bazlı görünür. Varsayılan başlık ilk text kolon değeridir. Bunu DisplayNameMacro kullanarak her bir tablo için ayrı ayrı değiştirebilirsiniz. Başlık makrosunda diğer kolonları da kullanabilirsiniz. Makro kuralları sayfa sonunda verilmiştir.

{
   "__type":"Geodi.Database.Meta.DBRowDisplayName, Geodi.Database",
  
   
   "DisplayNameMacro":"[TITLE]/[TUR]-[NAME]"
}

Tablolara Gömülü dosyaları Indexleme

 Geodi, Veritabanında dosya yolları bulunan ya da blob olarak veritabanına gömülmüş dosyaları tarayabilir. Bu dokümanda gerekli ayarların nasıl yapılacağı anlatılmıştır. 

Key Açıklama
FileMemoColumn Dosya içeriğinin yer aldığı BLOB/MEMO alan. GEODI dosya içeriğini otomatik olarak belirleyecektir
IDColumnMacro Dosyanın özgün numarası için makro. Makrolar için kurallar dokümanın sonunda yer almaktadır.
FileNameColumnMacro Dosyanın aramalarda ve görüntüleyicilerde görünecek adı için makro. Makrolar için kurallar dokümanın sonunda yer almaktadır.
{
   "Defines":[
      {
         "__type":"Geodi.Database.Meta.DBSubContent, Geodi.Database",

         "FileMemoColumn":"BelgeIcerik",
         "IDColumnMacro":"[BELGEBELGEICERIKID]",
         "FileNameColumnMacro":"[BELGEADI]",         
      }
   ]
}

Tabloda Dosya Yolu ile verilenleri İndexleme

 Bir kayıtta yer alan dosya linkleri ile belirtilen dosyaları da indexleyebilirsiniz.

Key Açıklama
FileFullPathColumnMacro Dosyaların yer alığı dizinleri hesaplayan makro. Bu makro doğrudan bir alandaki (örneğin PATH) değer olabilir veya kayda ait diğer alanlar ile birlikte hesaplanan bir yol olabilir.
FileFullPathColumnSplitter Eğer dosya yolunda birden çok dosya varsa ayraç karakterini bu şekilde verebilirsiniz.
{
   "Defines":[
      {
         "__type":"Geodi.Database.Meta.DBSubContent, Geodi.Database",

         "FileFullPathColumnMacro":"[PATH]",
         "FileFullPathColumnSplitter":"|"
      }
   ]
}

Birincil Anahtar Kolonu Belirleme

Değişenleri tara ve versiyonlama için her bir tablo için primary kolon gereklidir. GEODI ObjectID değerini varsayılan olarak belirler. Burada anlatılan tanım ile farklı bir kolonu belirleyebilirsiniz.

KeyColumns” değeri özgün ID değeri olacaktır.  

{
   "Defines":[
      {
         "__type":"Geodi.Database.Meta.DBPKey, Geodi.Database",
         "WorkspaceName":"BLOBDataset Deneme",
         "KeyColumns":"BelgeBelgeID"
      }
   ]
}

Bir SQL ifadesinin sonucunu indexleme

SQL anahtarı ile ismi NewName olan yeni bir tablo oluşturursunuz. SQL deyimi ilgili VTYS ile uyumlu olmalıdır.

KeyColums değerini alternatif olarak SQL içerisinde kolona “as P_KEY” veya “as OBJECTID” yazılarak da belirtebilirsiniz.

{
   "__type":"Geodi.Database.Meta.DBSQL, Geodi.Database",
   "TableFilter":"ADA,IRTIFAK_HAKKI",
   "ColumnFilter":"ADA.ADA_NO,ADA.OBJECTID,IRTIFAK_HAKKI.OBJECTID,IRTIFAK_HAKKI.TABAKA",
   
   "NewName":"ADALAR2",
   "SQL":"SELECT * FROM ADA,IRTIFAK_HAKKI WHERE IRTIFAK_HAKKI.OBJECTID=ADA.OBJECTID",
   "KeyColumns":"ADA.OBJECTID"
}

Bir Kaydın Metin/Text Sonucunu Belirleme

{
   "__type":"Geodi.Database.Meta.DBContent, Geodi.Database",
   "TableFilter":"PARSEL",
   "ColumnFilter":"PARSEL_NO",
   
   "Ignore":"False",
   "Content":"[PARSEL_NO] Ada [TABAKA] Parsel [TABAKA][TABAKA][ADA_NO][ADA_NO][TABAKA]"
}

Kayıtların Görünüm Şeklini Ayarlamak

“TemplateName” anahtarı ile vereceğiniz html şablon kriterlere uyan kayıtların görünümü belirleyecektir. Bu şablon ayar dosyaları ile aynı yerde bulunabilir.

TemplateName kullanımı size görsel olarak esneklik sağlar ama performans kaybı yaşatabilir.

{
   "Defines":[
      {
         "__type":"Geodi.Database.Meta.DB_DLV_View, Geodi.Database",
         
         "TemplateName":"PortalAnkaraGeziveMesire.html",
        
      }
   ]
}

FieldIndex Ayarları (Aramaları Kolon Adı ile sınırlamak)

Varsayılan arama tüm tablolar ve tüm kolonları kapsar. Arama sonucunu kolon bazlı sınırlamak için FieldIndex ayarını yapmalısınız. Ayar sonrası “kolonadı:<arama cümleniz>” ile kriterler ilgili kolon ile sınırlandırılacaktır.

  • Proje detay ayarlardan ContentReaderEnumerators → Veritabanınız → EnableAutoFieldIndex ayarını true yapıp projenizi yeniden taratmalısınız.  Yeniden tarama büyük veride zaman alabilir, bu nedenle baştan planlanmasında yarar vardır.  

(warning) Bu özellik aktif olduğunda. Veritabanından tanınan ve KLV’ye düşen kelimelerin yanında hangi kolonda bulundukları yazacaktır.

Kolon adlarını çok dilli yapmak ve alias(eş anlamlı) tanımlamak

isterseniz aşağıdaki tanımları yapmalısınız.

  1. resx dosya isimleri içinde “fields” mutlaka geçmelidir. Bu dosyalar globalization dizininde yer almalıdır.
  2. kullanılan name değeri att{fieldname} şeklinde olmalıdır ve tabloda olan ile uyuşmalıdır. Farklı dillerde aynı anahtarı kullanmalısınız.
  3. value değeri alternatif kolon adlarını içerir(alias). Birden çok alternatifi“|” ile ayırabilirsiniz.
  4. Kullandığınız aliaslardan herhangi biri başka bir kolon adı ile aynı olursa dikkate alınmaz.
  5. Çok dilli gösterimlerde ilk alias dikkate alınır.

myfields.resx

  <data name="att_{fieldname}" xml:space="preserve">
    <value>{alias1}|{alias2}|{alias3}</value>
  </data>
  
  <data name="att_EnvanterNo" xml:space="preserve">
    <value>Envanter Numarası|Envanter N.|Envanter Sırası</value>
  </data>
  <data name="att_ADI" xml:space="preserve">
    <value>Ad|Adı Soyadı|AdSoyad</value>
  </data>

myfields.en-us.resx

  <data name="att_{fieldname}" xml:space="preserve">
    <value>{alias1}|{alias2}|{alias3}</value>
  </data>
  
  
  <data name="att_EnvanterNo" xml:space="preserve">
    <value>Inventory Number|Inventory N|Inventory Position</value>
  </data> 
  <data name="att_PersonName" xml:space="preserve">
    <value>Name|Pname|Person Name</value>
  </data>

Veri Tabanı İstemcileri

GEODI’nin olduğu sunucuda ilgili veri tabanı için istemcilerin kurulu olması gereklidir.

VTYS İstemci
Oracle (OleDB) Bağlanılacak Oracle versiyonuna göre Google da ODAC…. şeklinde arama yapılarak uygun Oracle Client indirmesine ulaşılabilir. Oracle indirme için üyelik ister. Gerekli adımları taradıktan sonra indirme için link oluşturur.
PostGres Ekstra bir kurulum gerekmez.
Microsoft SQL Server Ekstra bir kurulum gerekmez.
SqLite Ekstra bir kurulum gerekmez.
Shape File Ekstra bir kurulum gerekmez.
CSV File Ekstra bir kurulum gerekmez.
KML File Ekstra bir kurulum gerekmez.
Excel Access Database Engine 2010 kurulu olmalıdır.

https://www.microsoft.com/en-us/download/details.aspx?id=13255

ODBC Ekstra bir kurulum gerekmez.
MS Access Access Database Engine 2010 kurulu olmalıdır.

https://www.microsoft.com/en-us/download/details.aspx?id=13255

SQLCE Ekstra bir kurulum gerekmez.
SQL Express Ekstra bir kurulum gerekmez.


Makrolar

Doküman ID, Dosya yolu gibi değerler için makro yazabilirsiniz. Makrolar kolon değerlerin doğrudan yetersiz kaldığı durumları çözmenizi sağlar. Hangi değerler için makro kullanılabileceği ilgili bölümlerde belirtilmiştir.

Makro metni kolonların “[]” arasında verildiği bir metindir. Örnekte görüldüğü gibi aynı kolonu birden çok kez verebilirsiniz.

Makrolarda bazı karakter escape karakteri (“\”) ile birlikte kullanılmalıdır. Örneğin “\” , “\\” şeklinde verilmelidir.

"FileFullPathColumnMacro":"C:\TEST\KUR-1166 VT\files\[FILE1]"

"DisplayNameMacro":“[ADANO] Ada [PARSELNO] Parsel”

"DisplayNameMacro":“[TITLE]-[POSITION]”

Detay Bilgiler

MsSql taramasında aliased column(takma ad sütun) kullanma

  • tablo_id as objectid şeklinde tanımlar ile bir sütuna takma ad verip objectid olarak kullanılabilir. Bu işlem MsSql de yapılırsa row görüntülerken invalid column name “objectid” hatası alınacaktır. Bu hatadan kaçmak için;
  • Bütün SQL sorgunuzu bir türetilmiş tablo içerisine almalısnız. “Select * from (<Sorgunuz>) yenisorgum” şeklinde türetilmiş tablo oluşturup kullanabilirsiniz.
  • https://stackoverflow.com/questions/16161938/how-to-use-alias-column-name-in-where-clause-in-sql-server

Oracle bağlantısı sırasında alınan oraops12.dll hatası çözümü

Oracle bağlantısı sırasında oraops12.dll hatası alınırsa ortama Oracle Client kurulması sorunu çözecektir. ODAC121021_x64Bit.