Tüm yazılara dön

TRObject

Clomosy ile SQL Server: Şirket Verisine Hazır Tabloların Ötesinden Bağlanın

Clomosy ile SQL Server

Clomosy ile SQL Server: Veriniz Zaten Bir Sunucudaysa

Bir uygulamanın ihtiyaç duyduğu veri her zaman yeni bir tablo istemez. Müşteri kartı, stok hareketi veya sipariş geçmişi çoğu zaman şirketin yıllardır kullandığı SQL Server üzerindedir.

Clomosy bu tabloyu yeniden kurmanızı beklemez. Açık bir projeden şirketin SQL Server’ına bağlanabilir, sorguyu çalıştırabilir ve dönen satırlarla ekranı doldurabilirsiniz.

Bu yol, Clomosy’nin hazır bulut tablolarından ve cihazın içindeki SQLite dosyasından ayrıdır.

Üç Veri Yeri, Üç Farklı İhtiyaç

Clomosy içinde veri üç ayrı yerde durabilir. Hangisinin seçileceği, verinin kime ait olduğuyla ilgilidir.

SQLite cihazdaki bir dosyadır. Uygulama çevrimdışıyken de yanında taşınabilen yerel kayıtlar için uygundur.

Cloud Tables Clomosy’nin bulutta hazır tuttuğu tablolardır. Müşteri, görev, ürün veya görüşme gibi kayıtlar ayrı bir sunucu kurmadan bu tablolarda tutulabilir.

SQL Server ise şirketin kendi sunucusudur. Muhasebe, depo veya üretim verisi zaten oradaysa uygulama o sunucuya gider.

Bu yazı üçüncü yolu anlatır. Cloud Tables’ın yerini almaz. SQLite dosyasının yerine de geçmez. Ağın öteki ucundaki SQL Server ile konuşan ayrı bir bağlantıdır.

Bağlantı Üç Yoldan Kurulur

Geliştirici sunucuya üç yoldan ulaşabilir.

Birincisi hazır bağlantı çağrısıdır: DBSQLServerConnect. Sunucu, veritabanı, kullanıcı ve kapı bu çağrıyla verilir.

İkincisi ConnectString yoludur. Bağlantı bilgisi bir dize olarak yazılır, ardından bağlantı açılır.

Üçüncüsü özellik yoludur. Sunucu, veritabanı, kullanıcı ve kapı bağlantı nesnesinin alanlarına yazılır, sonra Connect çağrılır.

Üç yol da Windows’taki kimlik doğrulamasını ve mobil ile macOS’taki Direct hazırlığını aynı şekilde uygular.

Bağlantı Sonucunu ve Hata Bilgisini Kontrol Etmek

Sunucu kapalı olabilir, parola yanlış olabilir veya ağ o an ulaşmıyor olabilir. DBSQLServerConnect bu durumda hata fırlatmaz, başarılı olup olmadığını bir sonuç olarak döndürür. Nedeni DBLastError alanında durur.

Bu davranış bağlantı çağrısına aittir. Uygulamanın geri kalanında oluşabilecek hatalar ayrıca ele alınmalıdır.

Bağlantı açıldıysa sorguya geçilir. Açılmadıysa iki ayrı iş yapılır. Kullanıcıya “Sunucuya şu an ulaşılamıyor, lütfen tekrar deneyin” gibi sade bir mesaj gösterilir. DBLastError içindeki teknik açıklama ise geliştiricinin bakabileceği bir kayda yazılır.

Sorgu ayrı bir adımdır. DBSQLServerQueryWith, açık bir bağlantı bekler. Bağlantı kurulmadan sorgu çalıştırılırsa işlem hata verir. Önce bağlantının sonucu okunur, sonra sorgu gelir.

Windows’ta Sunucu Hesabı veya Windows Hesabı

Windows üzerinde bağlantı, SQL Server’ın beklediği kimlik türüne göre kurulur.

Kullanıcı adı doluysa sunucu hesabı kullanılır. Kullanıcı adı boş bırakılırsa Windows kimlik doğrulaması devreye girer. Ofisteki bir masaüstü uygulaması, oturum açmış kullanıcının yetkisiyle kendi SQL Server’ına gidebilir.

Bu seçenek Windows’a aittir. Android, iOS ve macOS Direct modu kullanır. Ayrı bir SQL Server istemci kütüphanesi kurmak gerekmez. Kimlik, kullanıcı adı ve paroladır.

Telefon da Aynı Sunucuya Gidebilir

ClomosyApp, SQL Server bağlantısını Windows, Android, iOS ve macOS üzerinde sunar. Depo görevlisi telefondan, planlamacı ise Windows uygulamasından aynı veritabanına bakabilir.

Bunun bir koşulu vardır. Sunucuya ağdan ulaşılıyor olmalıdır. Sunucu yalnızca ofis içinden görünüyorsa telefon da o ağa bağlı olmalıdır. Ağ yoksa mobil uygulama da bağlanamaz. Direct mod, uzaktaki sunucuyu yereldeymiş gibi göstermez. Ulaşılabilen bir SQL Server’a, ekstra istemci kurmadan gitmenin yoludur.

Doğrudan Bağlantı Ne Zaman Uygundur?

Bağlantının kolay kurulması, her uygulama için doğru mimari olduğu anlamına gelmez. Mobil uygulama veritabanına doğrudan bağlandığında, bağlantı bilgileri uygulamanın içinde taşınır.

Bu yolu seçerken bağlantının şifreli olması gerekir. Clomosy’nin SQL Server bağlantısı bunun için Encrypt ve TrustServerCertificate seçeneklerini sunar. Uygulamanın kullandığı SQL hesabı yalnızca ihtiyaç duyduğu tablolara ve işlemlere yetkili olmalıdır. Sunucu internete açık bırakılmamalıdır.

Doğrudan bağlantı, şirket ağı içinde çalışan ve kullanıcısı belli uygulamalar için uygundur. Uygulama internet üzerinden, şirket dışından veya çok sayıda cihazdan kullanılacaksa veritabanının önüne bir API katmanı koymak çoğu zaman daha doğru seçimdir.

Gerçek Hayat Örneği: Depo Sayımı

Bir depo uygulaması düşünelim. Ürün kartları ve stok miktarları şirketin SQL Server’ındadır. Cloud Tables’a ikinci bir kopya açmak, iki listenin birbirinden kopmasına yol açar.

Görevli, Clomosy ile yazılmış sayım ekranını açar. Uygulama, depo ağı içindeki SQL Server’a bağlanır. Bağlantı olursa raflardaki ürünler listelenir. Sunucu o an yanıt vermezse görevli sade bir uyarı görür. DBLastError içindeki açıklama ise geliştirici için kayda geçer.

Sayım kaydedilirken yarım kalan bir kayıt oluşmaması, bağlantı kontrolüyle değil kayıt akışıyla sağlanır. Birden fazla satırı birlikte değiştiren işlemler transaction içinde yapılmalıdır.

Ofisteki Windows sürümü, boş kullanıcı adıyla oturum açmış personelin Windows hesabını kullanabilir. Sahadaki Android ve iOS sürümü aynı sunucuya kullanıcı adı ve parola ile, Direct moddan gider.

Sonuç: Veriyi Taşımak Zorunda Değilsiniz

SQL Server bağlantısı, Clomosy projesine şirketin mevcut veritabanını açar. SQLite cihazdaki dosya içindir. Cloud Tables, Clomosy bulutundaki hazır tablolar içindir. SQL Server ise ağdaki şirket verisi içindir.

Bağlantı üç yoldan kurulur. Sonuç okunur, hata nedeni DBLastError üzerinden görülür. Windows, sunucu hesabı veya Windows hesabıyla gider. Android, iOS ve macOS kullanıcı adı ve parola ile Direct moda bağlanır. Sunucu ağdan görünmüyorsa bağlantı da kurulamaz. Şirket ağı dışından erişim gerekiyorsa şifreli bağlantı, sınırlı yetkili bir hesap veya bir API katmanı düşünülmelidir.

Sık Sorulan Sorular

Clomosy SQL Server bağlantısı Cloud Tables’ın yerine mi geçer?

Geçmez. Cloud Tables, Clomosy bulutundaki hazır tablolardır. SQL Server bağlantısı, şirketin kendi sunucusundaki veritabanına gider. İkisi ayrı ihtiyaçlar içindir.

SQLite ile SQL Server arasındaki fark nedir?

SQLite, cihazın içindeki bir dosyadır. SQL Server, ağ üzerinden ulaşılan şirket sunucusudur. Çevrimdışı taşınacak kayıtlar SQLite’a, ofisteki ortak veriler SQL Server’a uygundur.

Bağlantı kurulamazsa ne olur?

DBSQLServerConnect hata fırlatmaz, başarısız olduğunu bir sonuç olarak döndürür. Nedeni DBLastError alanındadır. Kullanıcıya sade bir mesaj gösterilir, teknik açıklama geliştirici için kaydedilir. Sorgu ise açık bir bağlantı ister. Bağlantı yokken sorgu çalıştırmak hataya yol açar.

Telefonda SQL Server istemcisi kurmak gerekir mi?

Android, iOS ve macOS Direct modu kullanır. Ayrı bir SQL Server istemci kütüphanesi gerekmez. Bu platformlarda kimlik, kullanıcı adı ve paroladır. Windows hesabıyla giriş Windows’a özgüdür.

Mobil uygulamanın veritabanına doğrudan bağlanması güvenli midir?

Koşullara bağlıdır. Şirket ağı içinde, şifreli bağlantı ve yalnızca gerekli yetkilere sahip bir SQL hesabıyla kullanılabilir. Uygulama internet üzerinden kullanılacaksa veritabanının önüne bir API katmanı koymak daha doğrudur.