Function DE Version 5.00

@MySQLConnect

SQL

Syntax

@MySQLConnect(MySQLHandle;Host;User;Password);
@MySQLConnect(MySQLHandle;Host;User;Password;DefaultDB);

Beschreibung

Stellt eine Verbindung zum MySQL-Server her.
Sollte nach @MySQLoptions aufgerufen werden.

Der VSPECMYSQL MySQLHandle wird von @MySQLInit geliefert.

TEXT Host (für lokal "" (NULLSTR))
TEXT User (kann u.U. auch "" (NULLSTR) sein)
TEXT Password (kann u.U. auch "" (NULLSTR) sein)
TEXT DefaultDB (kann u.U. auch "" (NULLSTR) sein)

Return:
Im Erfolgsfall TRUE andernfalls @Error;

Beispiel: @MySQLConnect(MySQLHandle;Host;User;Password;DefaultDB);

MySQLh
:=@MySQLInit;

MySQLError:=1;
IF(@IsError(MySQLh)){
   @LogReport(MySQLh;3);
}ELSE{
   @MySQLOptions(MySQLh);
   
   MySQLUser:="MySQLConnectorUser";
   MySQLPassword:="ConnectorPassword";
   MySQLDefaultDatabase:="testdb";
   MySQLHost:="mysql.intranet";
   Ret:=@MySQLConnect(MySQLh;MySQLHost;MySQLUser;MySQLPassword;MySQLDefaultDatabase);
   
   IF(@IsError(Ret)){
      @LogReport(Ret);
   }ELSE{
      MySQLError:=0;}
   
   IF(!MySQLError){
      QueryStr:="SELECT ID,Name,Amount,UID FROM testdb.amounts WHERE Name=\"Test User\";";
      Ret:=@MySQLQuery(MySQLh;QueryStr;MySQLResH);
      NumRows:=@MySQLGetNumRows(MySQLResH);
      IF(NumRows=1){
         Ret:=@MySQLFetchRow(MySQLResH;1;ThisQueryID;ThisQueryName;ThisQueryAmount;ThisQueryUID);
      }ELSE{
         ThisQueryID:=-1;
         ThisQueryAmount:=0;
         ThisQueryName:=ThisQueryUID:="";
      }
      MySQLResH:=@MySQLFreeResult(MySQLResH);
      @LogReport("ThisQueryID :"+@Text(ThisQueryID);3);
      @LogReport("ThisQueryName :"+ThisQueryName;3);
      @LogReport("ThisQueryAmount:"+@Text(ThisQueryAmount);3);
      @LogReport("ThisQueryUID :"+ThisQueryUID;3);
   }
   
   MySQLh:=@MySQLClose(MySQLh);
}
@MySQLThreadEnd;

MySQL DB für dieses Beispiel:
CREATE DATABASE testdb
CHARACTER SET latin1 COLLATE latin1_german1_ci;

CREATE TABLE testdb.amount (
`ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(30),
`Amount` FLOAT,
`UID` VARCHAR(32),
`ModTime` DATETIME,
PRIMARY KEY(`ID`),
INDEX `Name` USING BTREE (`Name`),
INDEX `UID` USING BTREE (`UID`)
)
ENGINE = MYISAM
CHARACTER SET latin1 COLLATE latin1_german1_ci;

INSERT INTO testdb.amount (Name,Amount,UID,ModTime) VALUES ("Test User",123.45,"1234567890ABCDEFABCD1234567890AB",NOW());

Ausgabe im APILOG für dieses Beispiel:
NumRows:1
ThisQueryID :1
ThisQueryName :Test User
ThisQueryAmount:123.45
ThisQueryUID :1234567890ABCDEFABCD1234567890AB

Eine MySQL-Verbindung wird etabliert und ein Query abgesetzt, anschließend wird das Ergebnis im APILOG ausgegeben.