unit DBAccess; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- interface //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- uses
Math, SysUtils, MySQL,
Utilities, StrUtils, Dialogs; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- const
em=4000;
host='co';
port=1653; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- var
MySQL: PMYSQL;
MyTime: longword;
MyComp: integer;
user:String;
password:String; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure SQLConnect(MyHost:string;MyPort: integer;MyUser: string;MyPass: string); procedure SQLSelect(Produktkey:String;var Produktid :String;var Edition: String); function SQLSelectMultiple():integer; procedure SQLUpdate(Produktkey:String;WinId,IPaddr,CPU,Disk,EthernetAddr:String); function SQLFeedback(Vorname, Name, Email, Title, Version, Sprache,Itemindex, Kommentar, IP, Country :String):integer; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- implementation //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure SQLSelect(Produktkey:String;var Produktid :String;var Edition: String); var
SQLRes: PMYSQL_RES;
SQLstmt: Ansistring;
SQLCode:integer;
Row: PMYSQL_ROW;
Lengths: PMYSQL_LENGTHS;
Aktivierung,WinId:String; begin //Produktkey:=UpperCase(Produktkey);
sqlcode:=0;
SQLConnect(host+host+host+'.de',port*2,User,Password);
SQLstmt := 'select Produkt, Edition, Aktivierung, WinProdId from licences.license'
+ ' where Produktkey="'+Produktkey+'";'; try //-- mysql_query
sqlcode:= mysql_query(MySQL, pChar(SQLstmt)); except
error(em+51,'Schlüssel='+ProduktId+' Ergebnis='+IntToStr(SQLCode)) end; if sqlcode=0 thenbegin
SQLRes := mysql_use_result(MySQL); if SQLRes = nilthen
Produktid:='' elsetry
Row := mysql_fetch_row(SQLRes);
Lengths := mysql_fetch_lengths(SQLRes);
SetString(ProduktId, Row[0], Lengths[0]);
SetString(Edition, Row[1], Lengths[1]);
SetString(Aktivierung, Row[2], Lengths[2]);
SetString(WinId, Row[3], Lengths[3]); if Aktivierung<>'000-00-00'thenbegin// Reaktivierung if WinId<>GetWinProductId thenbegin
ProduktId:='';
Edition:=''; end; end; finally end endelsebegin
error(em+60,'Schlüssel='+ProduktId+' Ergebnis='+IntToStr(SQLCode)) end; //-- mysql_close
mysql_close(MySQL); end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure SQLConnect(MyHost:string;MyPort: integer;MyUser: string;MyPass:string); begin try
MySQL := mysql_init(nil); if MySQL = nilthen
error(em+52,'Keine Verbindung zur Datenbank');
MyTime := 30; if mysql_options(MySQL, MYSQL_OPT_CONNECT_TIMEOUT, @MyTime) <> 0 then
error(em+53,'Keine Verbindung zur Datenbank');
MyComp:=0*CLIENT_COMPRESS; if mysql_real_connect(MySQL, pChar(MyHost), pChar(MyUser),
pChar(MyPass), nil, MyPort, nil, MyComp) = nilthen
error(em+54,'Keine Verbindung zur Datenbank'); if mysql_connect(MySQL, pChar(MyHost), pChar(MyUser), pChar(MyPass)) = nilthen
error(em+55,'Keine Verbindung zur Datenbank'); except end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- function SQLFeedback(Vorname, Name, Email, Title, Version, Sprache,
Itemindex, Kommentar, IP, Country :String):integer; var
Query,Hostname,IPAddr,WSAErr: String;
sqlcode: integer; const
Spaces = ' '; begin
GetOwnIP(HostName,IPAddr, WSAErr);
SQLConnect(host+host+host+'.de',port*2,User,Password);
Query := 'insert into feedbacks.feedback '
+ ' (Datum, Vorname, Name, Email, Produkt, '
+ ' Version, Sprache, Bewertung, Kommentar, '
+ ' IP, Hostname, Country) '
+ ' values( CURRENT_TIMESTAMP '
+ ' ,"'+Vorname+'" '
+ ' ,"'+Name+'" '
+ ' ,"'+Email+'" '
+ ' ,"'+Title+'" '
+ ' ,"'+Version+'" '
+ ' ,"'+Sprache+'" '
+ ' ,'+ItemIndex+' '
+ ' ,"'+Kommentar+'" '
+ ' ,"'+IPAddr+'"'
+ ' ,"'+HostName+'"'
+ ' ,"'+Country+'")'; try //-- mysql_query
sqlcode:= mysql_query(MySQL, pChar(Query));
Result:=sqlcode; finally //-- mysql_close
mysql_close(MySQL); end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure SQLUpdate(Produktkey:String;WinId,IPaddr,CPU,Disk,EthernetAddr:String); var
Hostname,WSAErr: String;
SQLstmt: Ansistring; SQLCode:integer; begin //ProduktKey:=UpperCase(Produktkey);
GetOwnIP(HostName,IPAddr, WSAErr);
SQLConnect(host+host+host+'.de',port*2,User,Password);
SQLstmt := 'update licences.license'
+ ' set WinProdId="'+WinId+'" '
+ ' , IP="'+IPaddr+'" '
+ ' , CPU="'+CPU+'" '
+ ' , Disk="'+Disk+'" '
+ ' , Ethernet="'+EthernetAddr+'" '
+ ' , Aktivierung=CURDATE() '
+ ' where Produktkey="'+Produktkey+'";'; try//-- mysql_query
sqlcode:= mysql_query(MySQL, pChar(SQLstmt)); finally//-- mysql_close
mysql_close(MySQL); end; if sqlcode<>0 then
error(em+56,'Ergebnis='+inttostr(sqlcode)); end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- function SQLSelectMultiple():integer; var
Query: String;
SQLRes: PMYSQL_RES; //Result: PMYSQL_RES;
Line: string;
Field: PMYSQL_FIELD;
FieldCount: longword;
Lengths: PMYSQL_LENGTHS;
Row: PMYSQL_ROW;
I,sqlcode: integer;
Buffer: string; const
Spaces = ' '; begin
Result:=0;
SQLConnect(host+host+host+'.de',port*2,User,Password);
Query := 'select * from feedbacks.feedback;'; //-- mysql_query
sqlcode:= mysql_query(MySQL, pChar(Query)); if sqlcode<> 0 then
error(em+57,'MySQL Fehler' + IntToStr(sqlcode)); //-- mysql_use_result
SQLRes := mysql_use_result(MySQL); if SQLRes = nilthen
error(em+58,'Keine Verbindung zur Datenbank'); try
Line := ''; //-- mysql_fetch_field
Field := mysql_fetch_field(SQLRes); while Field <> nildobegin if Line <> ''thenbegin
Line:=Line+' '; end;
Line:=Line+copy(Field.name + Spaces, 1, Field.length); //-- mysql_fetch_field
Field := mysql_fetch_field(SQLRes); end; //-- mysql_num_fields
FieldCount := mysql_num_fields(SQLRes); // mysql_fetch_row
Row := mysql_fetch_row(SQLRes); while Row <> nildobegin
Line := ''; //-- mysql_fetch_lengths
Lengths := mysql_fetch_lengths(SQLRes); if Lengths = nilthen
error(em+59,'Keine Verbindung zur Datenbank'); for I := 0 to FieldCount - 1 dobegin if Line <> ''then Line:=Line+' ';
SetString(Buffer, Row[I], Lengths[I]); //-- mysql_fetch_field_direct
Line:=Line+copy(Buffer + Spaces, 1, mysql_fetch_field_direct(SQLRes, I).length); end; //-- mysql_fetch_row
Row := mysql_fetch_row(SQLRes); end; //-- mysql_eof if mysql_eof(SQLRes) = 0 then
error(em+60,'Keine Verbindung zur Datenbank'); finally //-- mysql_free_result
mysql_free_result(SQLRes);
mysql_close(MySQL); end; end;
{------------------------------------------------------------------}
{- -}
{- Ende dieser Quelle -}
{- -}
{------------------------------------------------------------------} end.
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.9Bemerkung:
(vorverarbeitet am 2026-04-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.