Konumlandırılmış güncelleştirmeler (odbc)
odbc bir imleç konumlandırılmış güncelleştirmeler gerçekleştirmek için iki yöntem destekler:
SQLSetPos
where current of yan tümce tümce tümce
Daha yaygın bir yaklaşım kullanmaktır SQLSetPos.Bunu aşağıdaki seçenekleri vardır.
SQL_POSITION
Pozisyonlar imleç belirli bir satır, geçerli satır kümesi üzerinde.SQL_REFRESH
Yenilemeler değişkenleri satırdan sonuç küme sütunlarından değerleri ile ilişkili program imleç üzerinde konumlandırılmış.SQL_UPDATE
Geçerli satırda imleci ile ilişkili program değişkenleri depolanan değerleri güncelleştirir sonuç küme sütunlar.SQL_DELETE
imleç, geçerli satırı siler.
SQLSetPos herhangi bir deyim ile kullanılan sonuç küme deyim tanıtıcı imleç öznitelikleri ayarlandığında sunucu imleçler kullanmak için.Program değişkenleri için sonuç küme sütunlarından bağlanmalıdır.Uygulama bir satır getirilen olarak çağırır SQLSetPoskonumlandırmak için (SQL_POSTION) imleç satırda.Uygulama geçerli satırı silmek için SQLSetPos(SQL_DELETE) sonra çağırabilir veya yeni veri değerleri ile ilişkili program değişkenleri taşımak ve geçerli satır güncelleştirmek için SQLSetPos(SQL_UPDATE) arayın.
Uygulamaları güncelleştirmek veya silmek herhangi bir satırın satır kümesi ile SQLSetPos.Arayan SQLSetPos oluşturma ve SQL deyim yürütmek için uygun bir alternatif olduğunu.SQLSetPos geçerli satır kümesi üzerinde çalışır ve yalnızca çağrısı yapıldıktan sonra kullanılan SQLFetchScroll.
Satır küme boyutu için yapılan bir çağrı tarafından belirlenmiş SQLSetStmtAttr ile SQL_ATTR_ROW_ARRAY_SIZE, öznitelik bağımsız değişkeni.SQLSetPos ama yalnızca çağrısı yapıldıktan sonra yeni bir satır kümesi boyutu kullanır SQLFetch veya SQLFetchScroll.Satır kümesi boyutu değişti, örneğin, SQLSetPos olarak adlandırılır ve sonra SQLFetch veya SQLFetchScroll denir.Çağrı SQLSetPos eski satır kümesi boyutu kullanır, ancak SQLFetch veya SQLFetchScroll yeni satır kümesi boyutunu kullanır.
İlk satırın satır kümesi satır sayısını 1 ' dir.RowNumber bağımsız değişkeninde SQLSetPos satır kümesi; bir satırda tanımlamanız gerekir yani, değeri olması aralık en son getirilen satır sayısı ile 1 arasında.Bu satır kümesi boyutundan küçük olabilir.RowNumber 0 ise, her satırda bir satır kümesi işlemi uygulanır.
Silme işlemi, SQLSetPos tablo bir veya daha fazla seçili satırları silmek veri kaynak oluşturur.Satır silmek için sqlkümePos, uygulama çağrıları sqlkümePos işlemi ile küme sql_delete ve RowNumber küme silmek için satır sayısı.RowNumber 0 ise, satır kümesi içindeki tüm satırlar silinir.
Sonra SQLSetPos verir, silinen satır, geçerli satır ve durumu sql_row_deleted.Herhangi ek konumlandırılmış işlemler, çağrı gibi satır kullanılamaz u veya SQLSetPos.
(RowNumber 0'a eşittir) satır kümesi tüm satırları sildiğinizde, uygulama sürücü satır işlem dizisi güncelleştirme işlemi için kullanarak, yalnızca gibi belirli satırları silerek engel olabilir SQLSetPos.
sonuç küme bulunan bir satır silinir her satırda olmalıdır.Uygulama arabellekleri getiriliyor tarafından doldurulmuş ve satır durumu dizi saklanır, her satır bu pozisyonları değerlerini, sql_row_deleted, sql_row_error veya sql_row_norow olması gerekir.
Konumlandırılmış güncelleştirmeler, güncelleştirme, silme, where current of yan tümce tümce tümce kullanılarak da gerçekleştirilebilir ve ifadeleri ekleyin.where current of o odbc imleç adı gerektirir ne zaman oluşturacak olan SQLGetCursorName işlev çağrılırsa veya arama yoluyla belirtebilirsiniz, SQLSetCursorName.Bir odbc uygulaması içinde bir where current of güncelleştirme gerçekleştirmek için kullanılan genel adımlar şunlardır:
Call SQLSetCursorName deyim kullanımı için bir imleç adı oluşturmak için.
GÜNCELLEŞTİRME için yan tümce tümce tümce içeren bir deyim oluşturmak ve yürütmek onu.
Call SQLFetchScroll bir satır kümesi almak için ya SQLFetch bir satır almak için.
Call SQLSetPos konumlandırmak için (SQL_POSITION) imleç satırda.
Yapı ve yürütmek ile bir where current of yan tümce tümce imleç adı kullanarak bir update deyim küme ile SQLSetCursorName.
Alternatif olarak, çağırabilir SQLGetCursorName , sonra yürütmek deyim yerine arama SQLSetCursorName select deyimini yürütmeden önce.SQLGetCursorName döndürür, aksi takdirde odbc tarafından atanmış bir varsayılan imleç adı küme imleç adı kullanarak sqlkümeimleçadı.
SQLSetPos sunucu imleçler kullanırken where current of tercih edilir.Statik, güncelleştirilebilir bir imleç ile odbc imleç kitaplığı kullanıyorsanız, imleç kitaplığı temel alınan temel alınan tablo için anahtar değerleri içeren bir where yan tümce tümce tümce ekleyerek where current of güncelleştirmeleri uygular.Bu, istenmeyen güncelleştirmeleri neden olabilir kayıt defteri anahtarlarını tablo benzersiz değildir.