Megosztás:


Adatok frissítése AZ SQLSetPos használatával

Az alkalmazások az SQLSetPos használatával frissíthetik vagy törölhetik a sorhalmaz bármely sorát. Az SQLSetPos meghívása kényelmes alternatíva egy SQL-utasítás létrehozására és végrehajtására. Lehetővé teszi, hogy az ODBC-illesztőprogramok akkor is támogatják a helyhez igazított frissítéseket, ha az adatforrás nem támogatja a pozicionált SQL-utasításokat. Ez része annak a paradigmának, hogy függvényhívásokkal teljes adatbázis-hozzáférést érhet el.

Az SQLSetPos az aktuális sorkészleten működik, és csak az SQLFetchScroll hívása után használható. Az alkalmazás megadja a frissíteni, törölni vagy beszúrni kívánt sor számát, és az illesztő lekéri a sor új adatait a sorhalmaz puffereiből. Az SQLSetPos használatával egy adott sort is kijelölhet aktuális sorként, vagy frissítheti a sorhalmaz egy adott sorát az adatforrásból.

A sorhalmaz méretét az SQLSetStmtAttr hívása állítja be a SQL_ATTR_ROW_ARRAY_SIZE attribútumargumentumával . Az SQLSetPos azonban csak az SQLFetch vagy az SQLFetchScroll hívása után használ új sorkészletméretet. Ha például a sorhalmaz mérete módosul, az SQLSetPos meghívása, majd az SQLFetch vagy az SQLFetchScroll meghívása, az SQLSetPos hívása pedig a régi sorkészletméretet használja, míg az SQLFetch vagy az SQLFetchScroll az új sorkészletméretet használja.

A sorhalmaz első sora az 1. sor. Az SQLSetPosSorszám argumentumának azonosítania kell a sorhalmaz egy sorát; vagyis az értékének az 1 és a legutóbb beolvasott sorok számának kell lennie (ami kisebb lehet a sorhalmaz méreténél). Ha a RowNumber értéke 0, a művelet a sorhalmaz minden sorára érvényes.

Mivel a relációs adatbázisokkal való interakciók többsége SQL-en keresztül történik, az SQLSetPos nem támogatott széles körben. Az illesztőprogramok azonban egyszerűen emulálhatják azt egy UPDATE vagy DELETE utasítás létrehozásához és végrehajtásához.

Annak megállapításához, hogy az SQLSetPos milyen műveleteket támogat, egy alkalmazás meghívja az SQLGetInfo-t a SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, SQL_KEYSET_CURSOR_ATTRIBUTES1 vagy SQL_STATIC_CURSOR_ATTRIBUTES1 információs lehetőséggel (a kurzor típusától függően).

Ez a szakasz a következő témaköröket tartalmazza.