Erlang - Datenbanken
Erlang kann eine Verbindung zu herkömmlichen Datenbanken wie SQL Server und Oracle herstellen. Erlang hat eineinbuilt odbc library das kann verwendet werden, um mit Datenbanken zu arbeiten.
Datenbankverbindung
In unserem Beispiel verwenden wir den Microsoft SQL Server. Stellen Sie vor dem Herstellen einer Verbindung zu einer Microsoft SQL Server-Datenbank sicher, dass die folgenden Zeiger aktiviert sind.
Sie haben eine Datenbank TESTDB erstellt.
Sie haben in TESTDB eine Tabelle EMPLOYEE erstellt.
Diese Tabelle enthält die Felder FIRST_NAME, LAST_NAME, AGE, SEX und INCOME.
Die Benutzer-ID "testuser" und das Kennwort "test123" sind für den Zugriff auf TESTDB festgelegt.
Stellen Sie sicher, dass Sie einen ODBC-DSN mit dem Namen erstellt haben usersqlserver Dadurch wird eine ODBC-Verbindung zur Datenbank hergestellt
Herstellen einer Verbindung
Um eine Verbindung zur Datenbank herzustellen, kann das folgende Codebeispiel verwendet werden.
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver;UID = testuser;PWD = test123", []),
io:fwrite("~p",[Ref]).
Die Ausgabe des obigen Programms ist wie folgt:
Output
<0.33.0>
Die folgenden Dinge müssen über das obige Programm beachtet werden.
Die Startmethode der odbc-Bibliothek wird verwendet, um den Beginn der Datenbankoperation anzuzeigen.
Die Verbindungsmethode erfordert einen DSN, einen Benutzernamen und ein Kennwort, um eine Verbindung herzustellen.
Erstellen einer Datenbanktabelle
Der nächste Schritt nach dem Herstellen einer Verbindung zur Datenbank besteht darin, die Tabellen in unserer Datenbank zu erstellen. Das folgende Beispiel zeigt, wie Sie mit Erlang eine Tabelle in der Datenbank erstellen.
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = testuser;PWD = test123, []),
odbc:sql_query(Ref, "CREATE TABLE EMPLOYEE (FIRSTNAME char varying(20),
LASTNAME char varying(20), AGE integer, SEX char(1), INCOME integer)")
Wenn Sie jetzt die Datenbank überprüfen, sehen Sie, dass eine Tabelle aufgerufen wird EMPLOYEE wird erstellt.
Einfügen eines Datensatzes in die Datenbank
Dies ist erforderlich, wenn Sie Ihre Datensätze in einer Datenbanktabelle erstellen möchten.
Im folgenden Beispiel wird ein Datensatz in die Mitarbeitertabelle eingefügt. Wenn die Tabelle erfolgreich aktualisiert wurde, geben der Datensatz und die Anweisung den Wert des aktualisierten Datensatzes und die Anzahl der aktualisierten Datensätze zurück.
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = testuser;PWD = test123", []),
io:fwrite("~p",[odbc:sql_query(Ref,
"INSERT INTO EMPLOYEE VALUES('Mac', 'Mohan', 20, 'M', 2000)")]).
Die Ausgabe des obigen Programms ist -
Output
{updated,1}
Datensätze aus der Datenbank abrufen
Erlang kann auch Datensätze aus der Datenbank abrufen. Dies erfolgt über diesql_query method.
Ein Beispiel wird im folgenden Programm gezeigt -
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = testuser;PWD = test123", []),
io:fwrite("~p",[odbc:sql_query(Ref, "SELECT * FROM EMPLOYEE") ]).
Die Ausgabe des obigen Programms wird wie folgt sein:
Output
{selected,["FIRSTNAME","LASTNAME","AGE","SEX","INCOME"],
[{"Mac","Mohan",20,"M",2000}]}
Sie sehen also, dass der Befehl insert im letzten Abschnitt funktioniert hat und der Befehl select die richtigen Daten zurückgegeben hat.
Abrufen von Datensätzen aus der Datenbank basierend auf Parametern
Erlang kann auch Datensätze basierend auf bestimmten Filterkriterien aus der Datenbank abrufen.
Ein Beispiel ist wie folgt:
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN=usersqlserver; UID=testuser;PWD=test123", []),
io:fwrite("~p",[ odbc:param_query(Ref, "SELECT * FROM EMPLOYEE WHERE SEX=?",
[{{sql_char, 1}, ["M"]}])]).
Die Ausgabe des obigen Programms ist -
Output
{selected,["FIRSTNAME","LASTNAME","AGE","SEX","INCOME"],
[{"Mac","Mohan",20,"M",2000}]}
Aktualisieren von Datensätzen aus der Datenbank
Erlang kann auch Datensätze aus der Datenbank aktualisieren.
Ein Beispiel dafür ist wie folgt:
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = testuser;PWD = test123", []),
io:fwrite("~p",[ odbc:sql_query(Ref, "
UPDATE EMPLOYEE SET AGE = 5 WHERE INCOME= 2000")]).
Die Ausgabe des obigen Programms ist -
Output
{updated,1}
Löschen von Datensätzen aus der Datenbank
Erlang kann auch Datensätze aus der Datenbank löschen.
Ein Beispiel dafür ist wie folgt:
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = testuser;PWD = test123", []),
io:fwrite("~p",[ odbc:sql_query(Ref, "DELETE EMPLOYEE WHERE INCOME= 2000")]).
Die Ausgabe des obigen Programms wird wie folgt sein:
Output
{updated,1}
Tabellenstruktur
Erlang kann auch eine Tabellenstruktur beschreiben.
Ein Beispiel ist wie folgt:
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = testuser;PWD = test123", []),
io:fwrite("~p",[odbc:describe_table(Ref, "EMPLOYEE")]).
Die Ausgabe des obigen Programms wird wie folgt sein:
Output
{ok,[{"FIRSTNAME",{sql_varchar,20}},
{"LASTNAME",{sql_varchar,20}},
{"AGE",sql_integer},
{"SEX",{sql_char,1}},
{"INCOME",sql_integer}]}
Datensatzanzahl
Erlang kann auch die Gesamtzahl der Datensätze in einer Tabelle abrufen.
Ein Beispiel dafür finden Sie im folgenden Programm.
Example
-module(helloworld).
-export([start/0]).
start() ->
odbc:start(),
{ok, Ref} = odbc:connect("DSN = usersqlserver; UID = sa;PWD = demo123", []),
io:fwrite("~p",[odbc:select_count(Ref, "SELECT * FROM EMPLOYEE")]).
Die Ausgabe des obigen Programms ist -
{ok,1}