Verwaltung und Programmierung


Tabellen aktivieren

Beim Aktivieren einer Benutzertabelle müssen Sie außerdem Tabellenbereiche angeben, die die zugehörigen Tabellen zur Verwaltungsunterstützung (und deren Indizes) halten sollen. Für einen oder mehrere der Tabellenbereiche kann ein Nullwert angegeben werden. In diesem Fall wird ein Standardtabellenbereich verwendet.

Nur EEE: Beim Aktivieren einer Tabelle für einen Extender in einer partitionierten Umgebung sollte der angegebene Tabellenbereich in einer Knotengruppe definiert sein, die alle Knoten im partitionierten Datenbanksystem umfaßt. Außerdem muß sich der Tabellenbereich in derselben Knotengruppe befinden wie die Benutzertabelle.

Sie benötigen Steuerungs- oder Änderungsberechtigung für die Benutzertabelle. Die Datenbank muß aktiviert sein, bevor Sie eine Tabelle darin aktivieren.

In den folgenden Beispielen wird eine Tabelle zum Halten von Abbilddaten aktiviert, wobei der Standardtabellenbereich verwendet wird. Die Datenbank ist bereits aktiviert.

Verwendung der API: Im folgenden Beispiel erstellt der Code, bevor die Tabelle aktiviert wird, die Tabelle und schreibt die Änderungen fest. Das Beispiel enthält unter anderem Fehlerprüfcode. Das vollständige Beispielprogramm befindet sich in der Datei ENABLE.C im Unterverzeichnis SAMPLES.

Abbildung 11. Beispielcode, mit dem eine Tabelle aktiviert wird

/*---- Create a table in the database. -------------------------------*/
printf("%s: Creating table......\n", argv[0]);
sprintf((char*) buffer, (char*) szCreate, tableName, imageColumn);
rc = SQLAllocStmt(hdbc, &hstmt);
cliCheckError(SQL_NULL_HENV, hdbc, SQL_NULL_HSTMT, rc);

/*---- Commit changes to the database. ------------------------------*/
rc = SQLTransact(henv, hdbc, SQL_COMMIT);
cliCheckError(henv, hdbc, SQL_NULL_HSTMT, rc);

/*---- Enable the table. --------------------------------------------*/
printf("%s: Enabling table......\n", argv[0]);
step="DBiEnableTable";
rc = DBiEnableTable(NULL, "employee");
if (rc < 0) {
        printf("%s: %s failed!\n", argv[0], step);
        printMsg(rc);
        DBiGetError(&sqlcode, errorMsgText);
     printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText);
} else if (rc > 0) {
        printf("%s: %s, warning detected.\n", argv[0], step);
        printMsg(rc);
        DBiGetError(&sqlcode, errorMsgText);
        printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText);
} else
        printf("%s: %s OK\n", argv[0], step);

Verwendung der db2ext-Befehlszeile: In diesem Beispiel besteht die Tabelle bereits, und die Datenbank ist aktiviert.

enable table employee for db2image


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]

Search the DB2 Extender Books