procedure TForm1.Button5Click(Sender: TObject);
var
mysql_server, mysql_port, mysql_user, mysql_pw, mysql_db :
String;
verarbeitung,ARTNUM,MATCHCODE,WARENGRUPPE,KURZNAME,LANGNAME,KAS_NAME,VPE,VPE_EK,PR_EINHEIT,EK_PREIS :
String;
Fehler, i, ii : Integer;
artikel_split, langtext_split : TStringList;
q, langtext:
string;
ex: boolean;
begin
Fehler := 0;
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+ '
settings.ini');
try
mysql_server := ini.ReadString('
CAO-Server','
server','
');
mysql_port := ini.ReadString('
CAO-Server','
port','
');
mysql_user := ini.ReadString('
CAO-Server','
username','
');
mysql_pw := ini.ReadString('
CAO-Server','
password','
');
mysql_db := ini.ReadString('
CAO-Server','
db','
');
finally
ini.free;
end;
If mysql_server = '
'
then
begin
ShowMessage('
Bitte geben Sie unter Optionen den MySql-Server an.');
Fehler := 1;
end;
If mysql_port = '
'
then
begin
ShowMessage('
Bitte geben Sie unter Optionen den MySql-Port an.');
Fehler := 1;
end;
If mysql_user = '
'
then
begin
ShowMessage('
Bitte geben Sie unter Optionen den MySql-Usernamen an.');
Fehler := 1;
end;
If mysql_pw = '
'
then
begin
ShowMessage('
Bitte geben Sie unter Optionen das MySql-Passwort an.');
Fehler := 1;
end;
If mysql_db = '
'
then
begin
ShowMessage('
Bitte geben Sie unter Optionen die MySql-Datenbank an.');
Fehler := 1;
end;
If Fehler = 0
then
begin
FMysql.Host := mysql_server;
FMysql.port := StrToInt(mysql_port);
FMysql.user := mysql_user;
FMysql.password := mysql_pw;
FMysql.UnixSocket := '
';
FMysql.Db := mysql_db;
// Datenbank auf dem Server
FMysql.UseNamedPipe := false;
FMysql.UseSSL := false;
FMysql.Compress := true;
FMysql.TrySockets := false;
if FMysql.Connect
then
begin
//ShowMessage('Verbindung aufgebaut');
// for i := 0 to 10 do
for i := 0
to Listbox3.Count-1
do
begin
Label2.Caption := IntToStr(i);
q := '
';
langtext := '
';
artikel_split := Split2(ListBox3.Items[i],'
;',false,false);
verarbeitung := artikel_split[1];
ARTNUM := artikel_split[2];
MATCHCODE := artikel_split[3];
WARENGRUPPE := '
1002';
KURZNAME := artikel_split[3];
KAS_NAME := artikel_split[3];
VPE := artikel_split[6];
VPE_EK := artikel_split[7];
PR_EINHEIT := artikel_split[5];
EK_PREIS := FloatToStr(StrToInt(artikel_split[8])/100);
artikel_split.Free;
for ii := 0
to Listbox2.Count-1
do
begin
langtext_split := Split2(ListBox2.Items[ii],'
;',false,false);
if langtext_split[2] = ARTNUM
then
langtext := langtext + langtext_split[5] + '
\n';
langtext_split.Free;
end;
LANGNAME := langtext;
if verarbeitung = '
N'
then
begin
q:= '
SELECT REC_ID FROM artikel WHERE ARTNUM = '+#039+ARTNUM+#039+'
;';
FResult := FMysql.query(q, true, ex);
if FResult.FieldValue(0) = '
'
then
begin
FreeAndNil(FResult);
q := '
Insert into artikel (ARTNUM,MATCHCODE,WARENGRUPPE,KURZNAME,LANGNAME,KAS_NAME,VPE,VPE_EK,PR_EINHEIT,EK_PREIS)'+
'
values ('+#039+ARTNUM+#039+'
,'+
#039+MATCHCODE+#039+'
,'+
#039+WARENGRUPPE+#039+'
,'+
#039+KURZNAME+#039+'
,'+
#039+LANGNAME+#039+'
,'+
#039+KAS_NAME+#039+'
,'+
#039+VPE+#039+'
,'+
#039+VPE_EK+#039+'
,'+
#039+PR_EINHEIT+#039+'
,'+
#039+EK_PREIS+#039+'
);';
FResult := FMysql.query(q, true, ex);
FreeAndNil(FResult);
if ex
then
begin
WriteLog(timetostr(time));
WriteLog('
Query erfolgreich');
WriteLog(ARTNUM+'
- '+KURZNAME+'
erfolgreichhinzugefügt');
WriteLog('
-----------------------------------------');
end
else
begin
WriteLog(timetostr(time));
WriteLog('
Query fehlgeschlagen: '+FMysql.LastError);
WriteLog(q);
WriteLog('
-----------------------------------------');
end;
end
else
begin
WriteLog(timetostr(time));
WriteLog('
Query nicht ausgeführt');
WriteLog(ARTNUM+'
- '+KURZNAME+'
ist bereits vorhanden');
WriteLog('
-----------------------------------------');
end;
end;
if verarbeitung = '
A'
then
begin
q := '
UPDATE artikel SET MATCHCODE = '+#039+MATCHCODE+#039+'
,'+
'
WARENGRUPPE = '+#039+WARENGRUPPE+#039+'
,'+
'
KURZNAME = '+#039+KURZNAME+#039+'
,'+
'
LANGNAME = '+#039+LANGNAME+#039+'
,'+
'
KAS_NAME = '+#039+KAS_NAME+#039+'
,'+
'
VPE = '+#039+VPE+#039+'
,'+
'
VPE_EK = '+#039+VPE_EK+#039+'
,'+
'
PR_EINHEIT = '+#039+PR_EINHEIT+#039+'
,'+
'
EK_PREIS= '+#039+EK_PREIS+#039+
'
WHERE ARTNUM ='+#039+ARTNUM+#039+'
;';
FResult := FMysql.query(q, true, ex);
FreeAndNil(FResult);
if not ex
then
begin
WriteLog('
Query fehlgeschlagen: '+FMysql.LastError);
WriteLog(q);
WriteLog('
-----------------------------------------');
end;
end;
if verarbeitung = '
L'
then
begin
q := '
DELETE FROM artikel WHERE ARTNUM = '+#039+ARTNUM+#039+'
;';
FResult := FMysql.query(q, true, ex);
FreeAndNil(FResult);
if not ex
then
begin
WriteLog('
Query fehlgeschlagen: '+FMysql.LastError);
WriteLog(q);
WriteLog('
-----------------------------------------');
end;
end;
end;
end
else
ShowMessage('
Fehler beim Verbinden: '+FMysql.LastError);
FMysql.close;
end;
end;