products/Sources/formale Sprachen/Delphi/Elbe 1.0/Sources image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: DBAccess.pas   Sprache: Delphi

unit DBAccess;
//----------------------------------------------------------------------------
//
//----------------------------------------------------------------------------
interface
//----------------------------------------------------------------------------
//
//----------------------------------------------------------------------------
uses
//----------------------------------------------------------------------------
// local
//----------------------------------------------------------------------------
  Utilities, MySQL,
//----------------------------------------------------------------------------
//  global
//----------------------------------------------------------------------------
  Math, SysUtils, StrUtils, Dialogs;
//----------------------------------------------------------------------------
//
//----------------------------------------------------------------------------
const
  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, pAnsiChar(SQLstmt));
  except
    errorn(19,'Schlüssel='+ProduktId+' Ergebnis='+IntToStr(SQLCode))
  end;
  if sqlcode=0 then begin
    SQLRes := mysql_use_result(MySQL);
    if SQLRes = nil then
      Produktid:=''
    else try
      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' then begin      // Reaktivierung
        if WinId<>GetWinProductId then begin
          ProduktId:='';
          Edition:='';
        end;
      end;
    finally
    end
  end else begin
    errorn(20,'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 = nil then
     errorn(21,'Keine Verbindung zur Datenbank');
   MyTime := 30;
   if mysql_options(MySQL, MYSQL_OPT_CONNECT_TIMEOUT, @MyTime) <> 0 then
     errorn(22,'Keine Verbindung zur Datenbank');
   MyComp:=0*CLIENT_COMPRESS;
   if mysql_real_connect(MySQL, pAnsiChar(AnsiString(MyHost)), pAnsiChar(AnsiString(MyUser)),
     pAnsiChar(AnsiString(MyPass)), nil, MyPort, nil, MyComp) = nil then
     errorn(23,'Keine Verbindung zur Datenbank');
   if mysql_connect(MySQL, pAnsiChar(AnsiString(MyHost)), pAnsiChar(AnsiString(MyUser)), pAnsiChar(AnsiString(MyPass))) = nil then
     errorn(24,'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, pAnsiChar(AnsiString(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, pAnsiChar(SQLstmt));
  finally  //-- mysql_close
    mysql_close(MySQL);
  end;
  if sqlcode<>0 then
   errorn(26,'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, pAnsiChar(AnsiString(Query)));
  if sqlcode<> 0 then
    errorn(27,'MySQL Fehler' + IntToStr(sqlcode));
  //-- mysql_use_result
  SQLRes := mysql_use_result(MySQL);
  if SQLRes = nil then
    errorn(28,'Keine Verbindung zur Datenbank');
  try
    Line := '';
    //-- mysql_fetch_field
    Field := mysql_fetch_field(SQLRes);
    while Field <> nil do begin
      if Line <> '' then begin
       Line:=Line+' ';
      end;
      //Line:=Line+copy(Field.name+Spaces,1,Field.name);  // ???
      //-- 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 <> nil do begin
      Line := '';
      //-- mysql_fetch_lengths
      Lengths := mysql_fetch_lengths(SQLRes);
      if Lengths = nil then
        errorn(29,'Keine Verbindung zur Datenbank');
      for I := 0 to FieldCount - 1 do begin
       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) then
        errorn(30,'Keine Verbindung zur Datenbank');
  finally
     //-- mysql_free_result
     mysql_free_result(SQLRes);
     mysql_close(MySQL);
  end;
end;
{------------------------------------------------------------------}
{-                                                                -}
{-   Ende dieser Quelle                                           -}
{-                                                                -}
{------------------------------------------------------------------}
end.


 

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

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 ist noch experimentell.


Bot Zugriff