Einzelnen Beitrag anzeigen

Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: Warum stürzt das Ding dabei ab?

  Alt 28. Jun 2005, 12:42
Zitat von marabu:
Hallo EL,

ich vermisse die Deklaration der function mysql_escape_string() und die Angabe auf welcher DLL (libmysql.dll? Version?) du aufsetzt. Was muss man machen, um dein Problem nachzustellen?

Grüße vom marabu

Nachtrag: ... aber das hält mich nicht auf. Bei mir funktioniert es.

Delphi-Quellcode:
program test;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  src, tgt: string;
  i: integer;

  function mysql_escape_string(szTo, szFrom: pchar; len: cardinal): cardinal; stdcall;
    external 'libmysql';

begin
  src := 'geht doch'#13#10'oder etwa nicht?';
  SetLength(tgt, Length(src) * 4);
  i := mysql_escape_string(pchar(tgt), pchar(src), Length(src));
  WriteLn(tgt);
  ReadLn;
end.
Noch ein Nachtrag - mit MYSQL.PAS geht auch das bei mir:

Delphi-Quellcode:
program test;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  MySQL;

var
  src, tgt: string;
  i: integer;
  my: PMySQL;

begin
  my := mysql_init(nil);
  if mysql_real_connect(my, 'localhost', 'root', '', 'conpresso', 0, nil, 0) = my then begin
    src := 'geht doch'#13#10'oder etwa nicht?';
    SetLength(tgt, Length(src) * 4);
    try
      i := mysql_real_escape_string(my, pchar(tgt), pchar(src), Length(src));
      WriteLn(tgt);
    except
      on E:Exception do
        WriteLn(e.message);
    end;
    ReadLn;
  end;
  mysql_close(my);
end.
warum setzt Du hier: SetLength(tgt, Length(src) * 4); die Länge x4 ?

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat