Einzelnen Beitrag anzeigen

akio87

Registriert seit: 18. Mär 2010
44 Beiträge
 
Delphi XE8 Architect
 
#3

AW: MySQL Query Update funktioniert nicht

  Alt 28. Okt 2015, 18:48
Hallo,

mein Gott hast Du scharfsinnige Augen

Das Updaten der Zeilen funktioniert jetzt, Danke deiner Hilfe.

Leider noch keine Leeren Datensätze, also "" Zellen... Mal Angenommen, ich möchte das Adressfeld1 leeren und speichern in der DBGrid. Das wird nicht übernommen.

DBGrid.Datasource -> UniMainModule.DataSource3.Dataset -> mySQLQuery3.UpdateObject -> mySQLUpdateSQL1

Code komplett:
Code:
procedure TfmAdressverwaltung.UniFormShow(Sender: TObject);
begin
  UniButton1.Click;
end;

procedure TfmAdressverwaltung.UniButton1Click(Sender: TObject);
var
  search, Tabelle: String;
begin

  if UniMainModule.RRSuche = True then
   begin
     Tabelle := 'Rechnungsadressen';
   end else
   begin
     Tabelle := 'Lieferadressen';
   end;

  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Clear;
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('update `' + Tabelle + '`');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('set');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Firma = :Firma,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Adress1 = :Adress1,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Adress2 = :Adress2,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Straße = :Straße,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('PLZ = :PLZ,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Ort = :Ort,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Land = :Land,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Such1 = :Such1,');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Such2 = :Such2');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('where');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Firma = :OLD_Firma and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Adress1 = :OLD_Adress1 and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Adress2 = :OLD_Adress2 and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Straße = :OLD_Straße and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('PLZ = :OLD_PLZ and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Ort = :OLD_Ort and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Land = :OLD_Land and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Such1 = :OLD_Such1 and');
  MainModule.UniMainModule.mySQLUpdateSQL1.ModifySQL.Add('Such2 = :OLD_Such2');


  search := '%' + UniEdit1.Text + '%';

  fmstart1.UniMemo1.Lines.Clear;
  fmstart1.UniMemo1.Lines.Text := 'select Firma, Adress1, Adress2, Straße, PLZ, Ort, Land, Such1, Such2 from ' + Tabelle + #10 +
                         'where Ident = ' + IntToStr(UniMainModule.Ident) + #10 +
                         'AND (Firma like '+QuotedStr(search)+' OR Adress1 like '+ QuotedStr(search)+' OR Adress2 like '+ QuotedStr(search)+' OR Straße like '+ QuotedStr(search)+ 'OR PLZ like '+ QuotedStr(search)+ 'OR Ort like '+ QuotedStr(search)+ 'OR Land like '+ QuotedStr(search)+ 'OR Such1 like '+ QuotedStr(search)+ 'OR Such2 like '+ QuotedStr(search)+')';

  UniMainModule.mySQLQuery3.SQL.Text := fmstart1.UniMemo1.Lines.Text;
  UniMainModule.mySQLQuery3.Open;

  UniDBGrid1.Columns[0].Width := 250;
  UniDBGrid1.Columns[1].Width := 100;
  UniDBGrid1.Columns[2].Width := 70;
  UniDBGrid1.Columns[3].Width := 150;
  UniDBGrid1.Columns[4].Width := 50;
  UniDBGrid1.Columns[5].Width := 100;
  UniDBGrid1.Columns[6].Width := 100;
  UniDBGrid1.Columns[7].Width := 100;
  UniDBGrid1.Columns[8].Width := 100;
end;

Geändert von akio87 (28. Okt 2015 um 18:56 Uhr)
  Mit Zitat antworten Zitat