User Tools

Site Tools


vba:access:sqlscript:scriptexamples

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:access:sqlscript:scriptexamples [17.04.2015 15:25:43]
yaslaw
vba:access:sqlscript:scriptexamples [21.12.2015 09:54:45] (current)
yaslaw
Line 1: Line 1:
 ====== [VBA][Access] Klasse SQLScript - SQL Befehle ====== ====== [VBA][Access] Klasse SQLScript - SQL Befehle ======
-Diese Beispiele basieren alle auf der Klasse [[.:index]].+Diese Beispiele basieren alle auf der Klasse [[vba:access:​classes:​sqlscript]].
 Es werden hier nur die SQL-Statements gezeigt und den Rückgabewert. Es werden hier nur die SQL-Statements gezeigt und den Rückgabewert.
  
Line 6: Line 6:
 ==== Befehlsabschluss ; ==== ==== Befehlsabschluss ; ====
 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 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
 +<code sql>​SELECT * FROM my_table;
 +SELECT *
 +FROM my_table
 +;</​code>​
 +=== Spezialfälle ===
 +Das ; am Ende einer Zeile wird nicht als Befehlsende intepretiert,​ wenn die Zeile eine Kommentarzeile ist. Also mit -- beginnt. Oder wenn die Zeile mit PARAMETERS beginnt. Dann ist es eine Paramterzeile eines SQLs
 +<code sql>-- Dies ist ein Tast;
 +
 +CREATE OR REPLACE VIEW vw_test AS 
 +-- Das ; in der folgenden Zeile wird nicht als Befehlsende intepretiert
 +PARAMETERS [P_ID] Long;
 +SELECT t.*
 +FROM tbl_test AS t
 +WHERE t.id = [P_ID];
 +-- hingegen endet der SQL-Befehm nach dem ; auf der vorhergehenden Zeile</​code>​
 +
  
 ==== Komentarzeilen -- ==== ==== Komentarzeilen -- ====
-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+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. Kommentare hinter dem Code wird nicht als solcher erkannt. Jeder Kommentar muss also auf eine eigene Zeile
  
 <code sql>-- Hallo Welt <code sql>-- Hallo Welt
Line 18: Line 34:
 ===== PROMPT ===== ===== PROMPT =====
 <​code>​ PROMPT text</​code>​ <​code>​ PROMPT text</​code>​
-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.+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 >Da PROMPT ein Befehlist, muss die Zeile in einem Script mit mehreren Befehlen mit ; abgeschlossenwerden
  
 ===== Einfache Access-SQL ===== ===== Einfache Access-SQL =====
-Auf einfache SELECT etc. gehe ich hier nicht weiter ein. DieDoku ​dazu findest du unter den folgenden Links+Auf einfache SELECT etc. gehe ich hier nicht weiter ein. Die Doku dazu findest du unter den folgenden Links
 == DDL == == DDL ==
 +Data Definition Language (DDL, deutsch „Datenbeschreibungssprache“)
   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff196148.aspx|ALTER TABLE Statement (Microsoft Access SQL)]]   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff196148.aspx|ALTER TABLE Statement (Microsoft Access SQL)]]
   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff823109.aspx|CREATE INDEX Statement (Microsoft Access SQL)]]   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff823109.aspx|CREATE INDEX Statement (Microsoft Access SQL)]]
Line 31: Line 48:
  
 == DML == == DML ==
 +Data Manipulation Language (DML, deutsch „Datenverarbeitungssprache“)
   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff195097.aspx|DELETE Statement (Microsoft Access SQL)]]   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff195097.aspx|DELETE Statement (Microsoft Access SQL)]]
   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff834799.aspx|INSERT INTO Statement (Microsoft Access SQL)]]   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff834799.aspx|INSERT INTO Statement (Microsoft Access SQL)]]
Line 36: Line 54:
  
 == DCL == == DCL ==
 +Data Control Language (DCL, deutsch „Datenaufsichtssprache“)
   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff821148.aspx|SELECT Statement (Microsoft Access SQL)]]   * [[https://​msdn.microsoft.com/​en-us/​library/​office/​ff821148.aspx|SELECT Statement (Microsoft Access SQL)]]
  
Line 69: Line 88:
 FROM tbl_t1 AS t FROM tbl_t1 AS t
 WHERE t.id = [act_id];</​code>​ WHERE t.id = [act_id];</​code>​
-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]]+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 ein %%PrintScreen%% aus der [[vba:​access:​sqlscript:​sqlconsole]]:​ {{:​vba:​access:​sqlscript:​sql_console_3.jpg?​linkonly|Arbeiten mit Variablen ohne SET}}
  
 Die aktiven Werte für gecachte Variabeln kann man mittels [[#SHOW Variables/​Paramters]] überprüfen. Die aktiven Werte für gecachte Variabeln kann man mittels [[#SHOW Variables/​Paramters]] überprüfen.
  
 ===== CLEAR CHACHE ===== ===== CLEAR CHACHE =====
-<​code>​CLEAR CACHE</​code>​+<​code>​CLEAR CACHE 
 +CLEAR CACHE var_name</​code>​
 Um gerade noch bei den Variablen zu bleiben. Mittels CLEAR CACHE können die Variablen gelöscht werden. 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+Wenn kein Variablenname angegeben wird, wird der ganez Cache gelöscht. Ansonsten nur die eine Variable.
  
 Hier mal ein Beispiel aus der Konsole Hier mal ein Beispiel aus der Konsole
-<code sql>SET a = 2;+<code sql>SET a = 1; 
 +SET b = 2
 +SET c = 3;
 SHOW VARIABLES; SHOW VARIABLES;
 +-- Nur Variable B löschen
 +CLEAR CACHE b;
 +SHOW VARIABLES;
 +-- Alle Variablen löschen
 CLEAR CACHE; CLEAR CACHE;
 SHOW VARIABLES;</​code>​ SHOW VARIABLES;</​code>​
-<​code>​Set Paramter [A] to 2+<​code>​Set Paramter [A] to 1 
 + 
 +Set Paramter [B] to 2 
 + 
 +Set Paramter [C] to 3
  
 | variable_name | type | value | | variable_name | type | value |
 |---------------|------|-------| |---------------|------|-------|
-| A             | BYTE | 2     |+| A             | BYTE | 1     | 
 +| B             | BYTE | 2     | 
 +| C             | BYTE | 3     |
  
 +Clear Cache for Variable [B]
 +
 +| variable_name | type | value |
 +|---------------|------|-------|
 +| A             | BYTE | 1     |
 +| C             | BYTE | 3     |
 +
 +Clear Cache
  
 | variable_name | type | value | | variable_name | type | value |
Line 98: Line 139:
  
 SQLScript kennt mehrere verschiedene Objekte die analysiert werden können SQLScript kennt mehrere verschiedene Objekte die analysiert werden können
- 
-| TABLES | Auflistung der Tabellen und der Index | 
  
 ==== SHOW VIEWS/​TABLES ==== ==== SHOW VIEWS/​TABLES ====
Line 143: Line 182:
 </​code>​ </​code>​
  
-== SHOW INDEXES ==+==== SHOW INDEXES ​====
 <​code>​SHOW INDEXES FROM table</​code>​ <​code>​SHOW INDEXES FROM table</​code>​
 <code sql>SHOW INDEXES FROM tbl_t1;</​code>​ <code sql>SHOW INDEXES FROM tbl_t1;</​code>​
Line 153: Line 192:
 ==== SHOW Variables/​Paramters ==== ==== SHOW Variables/​Paramters ====
 <​code>​SHOW VARIABLES</​code>​ <​code>​SHOW VARIABLES</​code>​
-Zeigt alle Variablen an. Zum Thema Variabeln siehe auch [[#SET]], [[SELECT mit Parametern/​Variabeln]].+Zeigt alle Variablen an. Zum Thema Variabeln siehe auch [[#SET]], [[#SELECT mit Parametern/​Variabeln]].
 \\ Ein Beispiel für SHOW VARIABLES; siehst du bei [[#CLEAR CHACHE]] \\ Ein Beispiel für SHOW VARIABLES; siehst du bei [[#CLEAR CHACHE]]
  
 +<code vb>SET a = 3;
 +SET b = '​abc';​
 +-- Eine Variable als undefinierte Variable mittels eines SELECT erzwingen (siehe auch SELECT mit Parametern/​Variabeln)
 +SELECT c; 
 +SET d = NOW();
 +-- Alle Variabeln anzeigen
 +SHOW VARIABLES;</​code>​
 +<​code>​Set Paramter [A] to 3
 +
 +Set Paramter [B] to abc
 +
 +| c    |
 +|------|
 +| 1234 |
 +
 +Set Paramter [D] to 20.04.2015 08:48:05
  
 +| variable_name | type     | value                 |
 +|---------------|----------|-----------------------|
 +| D             | DATE     | #04-20-2015 08:48:05# |
 +| A             | BYTE     | 3                     |
 +| B             | TEXT(50) | '​abc' ​                |
 +| C             | INTEGER ​ | 1234                  |</​code>​
vba/access/sqlscript/scriptexamples.1429277143.txt.gz · Last modified: 17.04.2015 15:25:43 by yaslaw