This is an old revision of the document!
Diese Beispiele basieren alle auf der Klasse .. Es werden hier nur die SQL-Statements gezeigt und den Rückgabewert.
Bei Einzelscripte ist kein ; am Ende des Befehls notwendig. Das Semicolon schadet aber auch nicht. Bei Scripten mit mehreren Befehlen ist das ; am Ende Notwendig. Nach dem ; darf auf der zeile bis auf Leerzeichen nichts mehr folgen
SQLScript erlaubt Komentarzeilen in Code. Jede Zeile, die mit einem – beginnt (es darf Leerzeichen (Space, Tab) davor haben) wird als Komentarzeile angesehen und vor dem Ausführen entfernt
-- Hallo Welt SELECT -- Als erstes geben wir die ID aus id, ...
PROMPT text
Im Gegensatz zum Komentar mittels – ist PROMPT durchaus ein Befehl. Der Text nach PROMPT wird beim Ausführen eines Scriptes zurückgegeben. Der Befehl macht vor allem in grösseren Scripten Sinn, um in der Ausgabe Notizen zu hinterlassen bei welchem Schritt man gerade ist.
Da PROMPT ein Befehlist, muss die Zeile in einem Script mit mehreren Befehlen mit ; abgeschlossenwerden
Auf einfache SELECT etc. gehe ich hier nicht weiter ein. DieDoku dazu findest du unter den folgenden Links
SET param = value
Ms Access SQL kennt bei den Abfragen Variablen/Parameters. SQLScript kann damit arbeiten. Wenn man einem Parameter einen Wert zuteilt, bleibt der erhalten bis der Cache des Containers gelehrt wird.
Siehe auch SELECT mit Parametern/Variabeln
Setzen eines Wertes geht über die Funktion SET
SET act_id = 13
SET search_date = #01-01-2015#
Somit haben wir jetzt eine Variabel act_id mit dem Wert 13 und search_date mit dem ersten Tag im 2015. Diese Variablen kann an wie gewohnt im Access mittels SELECT abfragen. Oder man kann sie in einem Filter brauchen. Genauso wie die benannten Parameter einer Abfrage.
Hier mein Testscript, dass ich über die Konole aufrufe
SET act_id = 13; PROMPT IN der Tabelle die ID [act_id] herausfiltern; SELECT * FROM tbl_t1 WHERE id = act_id;
Set Paramter [ACT_ID] to 13 > IN der Tabelle die ID [act_id] herausfiltern | id | val | |----|-----| | 13 | ABC |
Wie in SET bereits erwähnt, kennt MS Access SQL Paramter. Entweder sind sie vordefiniert oder aber es sind Feldnamen die in der Quelle nicht vorhanden sind. Wir kennen dass, wenn man eine Abfrage öffnet und Access fragt nach einem Wert für ein Feld.
Ind em folgenden SQL ist [act_id] ein undefinierter Paramter.
SELECT t.* FROM tbl_t1 AS t WHERE t.id = [act_id];
Beim ausführen erscheint eine Inputbox, die nach dem Wert für act_id fragt. Dieser Wert wird anschliessend in den Cache des Containers gespeichert. Analog zum Scriptseiten SET.
Hier ien PrintScreen aus der [VBA][Access] SQL Console: Arbeiten mit Variablen ohne SET
Die aktiven Werte für gecachte Variabeln kann man mittels SHOW Variables/Paramters überprüfen.
CLEAR CACHE
Um gerade noch bei den Variablen zu bleiben. Mittels CLEAR CACHE können die Variablen gelöscht werden.
Achtung! Es werden alle Variablen gelöscht
Hier mal ein Beispiel aus der Konsole
SET a = 2; SHOW VARIABLES; CLEAR CACHE; SHOW VARIABLES;
Set Paramter [A] to 2 | variable_name | type | value | |---------------|------|-------| | A | BYTE | 2 | | variable_name | type | value | |---------------|------|-------|
SHOW
ist ein Befehl, den man aus anderen DBMS kennt um Objekte in der Datenbank anzuzeigen. Tabellen, Spalten etc.
SQLScript kennt mehrere verschiedene Objekte die analysiert werden können
TABLES | Auflistung der Tabellen und der Index |
SHOW TABLES [WHERE conditions] SHOW VIEWS [WHERE conditions]
SHOW TABLES
| table_name | row_count | last_update | indexes | |-----------------------------|-----------|---------------------|--------------------------------------------| | ADDON_SQL_CONSOLE_SESSION | 19 | 13.04.2015 12:57:28 | ID, PrimaryKey (PK) | | t_sql_test | 1 | 17.04.2015 10:08:24 | idx_sql_val, Index_F44530CA_8088_4FED (PK) | | tbl_t1 | 2 | 13.04.2015 12:09:01 | idx_val, Index_B4C4285A_B98F_4415 (PK) | | TODO: ADDON_SQL_CONSOLE_LOG | 0 | 13.04.2015 12:26:40 | PrimaryKey (PK), SESSION_ID, STEP_ID |
SHOW TABLES WHERE TABLE_NAME LIKE '*_t*';
| table_name | row_count | last_update | indexes | |------------|-----------|---------------------|--------------------------------------------| | t_sql_test | 1 | 17.04.2015 10:08:24 | idx_sql_val, Index_F44530CA_8088_4FED (PK) | | tbl_t1 | 2 | 13.04.2015 12:09:01 | idx_val, Index_B4C4285A_B98F_4415 (PK) |
SHOW COLUMNS FROM table SHOW COLUMNS FROM view
Zeigt die Spalten einer Tabelle oder einer View mit ihren Eigenschafte an
SHOW COLUMNS FROM tbl_t1;
| nr | field_name | field_type | allow_zero_length | required | source_table | source_field | autoincrement | default_value | |----|------------|------------|-------------------|----------|--------------|--------------|---------------|---------------| | 1 | id | LONG | False | False | tbl_t1 | id | False | | | 2 | val | TEXT(25) | False | False | tbl_t1 | val | False | |
SHOW COLUMNS FROM vw_t1;
| nr | field_name | field_type | allow_zero_length | required | source_table | source_field | autoincrement | default_value | |----|------------|------------|-------------------|----------|--------------|--------------|---------------|---------------| | 1 | id | LONG | False | False | tbl_t1 | id | False | | | 2 | val | TEXT(25) | False | False | tbl_t1 | val | False | | | 3 | jetzt | DATE | False | False | | | False | |
SHOW INDEXES FROM table
SHOW INDEXES FROM tbl_t1;
| index_name | primary_key | unique | |--------------------------|-------------|--------| | idx_val | False | False | | Index_B4C4285A_B98F_4415 | True | True |
SHOW VARIABLES
Zeigt alle Variablen an. Zum Thema Variabeln siehe auch SET, Variabeln.
Ein Beispiel für SHOW VARIABLES; siehst du bei CLEAR CHACHE