Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Temel birlikte çalışabilirlik düzeyi bilindikten sonra, uygulama tarafından kullanılan veritabanı özellikleri dikkate alınmalıdır. Örneğin, uygulama hangi SQL deyimlerini yürütecek? Uygulama kaydırılabilir imleçler kullanacak mı? Hareket? Prosedürler mi? Uzun veri mi? Tüm DBMS'ler tarafından hangi özelliklerin desteklenmeyebileceği hakkında fikir edinmek için SQLGetInfo, SQLSetConnectAttr ve SQLSetStmtAttr işlev açıklamalarına ve Ek C: SQL Dilbilgisi'ne bakın. Bir uygulamanın gerektirdiği özellikler, bazı DBMS'leri hedef DBMS'ler listesinden kaldırabilir. Ayrıca uygulamanın birçok DBMS'yi kolayca hedefleyebildiğini de gösterebilirler.
Örneğin, gerekli özellikler basitse, bunlar genellikle yüksek düzeyde birlikte çalışabilirlikle uygulanabilir. Basit bir SELECT deyimi yürüten ve sonuçları yalnızca ileriye doğru bir imleçle alan bir uygulama, basitliği nedeniyle büyük olasılıkla birlikte çalışabilir olacaktır: Neredeyse tüm sürücüler ve DBMS'ler ihtiyaç duyduğu işlevselliği destekler.
Ancak, kaydırılabilir imleçler, konumlandırılmış güncelleştirme ve silme deyimleri ve yordamlar gibi gerekli özellikler daha karmaşıksa, genellikle dengeler sağlanmalıdır. Birkaç olasılık vardır:
Daha düşük birlikte çalışabilirlik, daha fazla özellik. Uygulama özellikleri içerir ancak yalnızca bunları destekleyen DBMS'lerle çalışır.
Daha yüksek birlikte çalışabilirlik, daha az özellik. Uygulama özellikleri bırakır ancak daha fazla DBMS ile çalışır.
Daha yüksek birlikte çalışabilirlik, isteğe bağlı özellikler. Uygulama özellikleri içerir ancak yalnızca bunları destekleyen DBMS'lerle kullanılabilir hale getirir.
Daha yüksek birlikte çalışabilirlik, daha fazla özellik. Uygulama, özellikleri destekleyen DBMS'lerle kullanır ve bu özellikleri desteklemeyen DBMS'ler için bu özellikleri öykünür.
Özellikler desteklenen tüm DBMS'lerle veya hiçbiri ile kullanıldığından, ilk iki örneğin uygulanması nispeten basittir. Öte yandan, ikinci iki durum daha karmaşıktır. Her iki durumda da, DBMS'nin özellikleri destekleyip desteklemediğini kontrol etmek ve son durumda bu özelliklerin taklit edilmesi için potansiyel olarak büyük miktarda kod yazmak gerekebilir. Bu nedenle, bu şemalar büyük olasılıkla daha fazla geliştirme süresi gerektirir ve çalışma zamanında daha yavaş olabilir.
Tek bir veri kaynağına bağlanabilen genel bir sorgu uygulaması düşünün. Uygulama, kullanıcıdan gelen bir sorguyu kabul eder ve sonuçları bir pencerede görüntüler. Şimdi bu uygulamanın kullanıcıların aynı anda birden çok sorgunun sonuçlarını görüntülemesine olanak tanıyan bir özelliği olduğunu varsayalım. Başka bir ifadeyle bir sorgu yürütebilir ve bazı sonuçlara bakabilir, farklı bir sorgu yürütebilir, bazı sonuçlarına bakabilir ve ardından ilk sorguya geri dönebilirler. Bazı sürücüler yalnızca tek bir etkin deyimi desteklediği için bu bir birlikte çalışabilirlik sorunu sunar.
Uygulama, sürücünün SQLGetInfo içindeki SQL_MAX_CONCURRENT_ACTIVITIES seçeneği için döndürdüğüne bağlı olarak çeşitli seçenekler sunar.
Her zaman birden çok sorguyu destekleyin. Bir sürücüye bağlandıktan sonra, uygulama etkin deyimlerin sayısını kontrol eder. Sürücü yalnızca bir etkin deyimi destekliyorsa, uygulama bağlantıyı kapatır ve kullanıcıya sürücünün gerekli işlevselliği desteklemediğini bildirir. Uygulamanın uygulanması kolaydır ve tam işlevselliğe sahiptir, ancak birlikte çalışabilirliği daha düşüktür.
Hiçbir zaman birden çok sorgu desteklemez. Uygulama özelliği tamamen bırakır. Uygulanması kolaydır ve yüksek birlikte çalışabilirliğe sahiptir ancak daha az işlevselliğe sahiptir.
Birden çok sorguyu yalnızca sürücü destekliyorsa destekleyin. Bir sürücüyle bağlandıktan sonra program aktif deyim sayısını denetler. Uygulama, yalnızca sürücü birden çok etkin deyimi destekliyorsa kullanıcının zaten etkin bir deyim varken yeni bir deyim başlatmasına izin verir. Uygulamanın işlevselliği ve birlikte çalışabilirliği daha yüksektir, ancak uygulanması daha zordur.
Her zaman birden fazla sorguyu destekleyin ve gerektiğinde bunların taklidini yapın. Bir sürücüye bağlandıktan sonra uygulama aktif deyim sayısını denetler. Uygulama, bir beyan zaten etkin olduğunda daima kullanıcının yeni bir beyan başlatmasına izin verir. Sürücü yalnızca bir etkin deyimi destekliyorsa, uygulama bu sürücüye ek bir bağlantı açar ve bu bağlantıda yeni deyimi yürütür. Uygulamanın tam işlevselliği ve yüksek birlikte çalışabilirliği vardır, ancak uygulanması daha zordur.