Hier war einfach nur wer schreibfaul, oder wollte Speicher sparen, und es geht natürlich auch länger:
Delphi-Quellcode:
Query1.SQL.Text := 'INSERT INTO Categories (CategoryName, Description, Picture) VALUES (:CategoryName, :Description, :Picture)';
Query1.ParamByName['CategoryName'].AsString := 'New category';
Query1.ParamByName['Description'].AsString := 'New description';
Query1.ParamByName['Picture'].AsInteger := $0334;
Query1.Execute;
Und da die Parameternamen grundsätzlich egal sind:
Delphi-Quellcode:
Query1.SQL.Text := 'INSERT INTO Categories (CategoryName, Description, Picture) VALUES (:mvsdnjkfdsa, :gbvös, :jmnfkeads)';
Query1.ParamByName['mvsdnjkfdsa'].AsString := 'New category';
Query1.ParamByName['gbvös'].AsString := 'New description';
Query1.ParamByName['jmnfkeads'].AsInteger := $0334;
Query1.Execute;
Es gibt auch Statements/
DBMS/Datenbankkompoenten, die garkeine Namen nutzen, sondern nur durchnummerieren, wie z.B.
Delphi-Quellcode:
Query1.SQL.Text := 'INSERT INTO Categories (CategoryName, Description, Picture) VALUES ($0, $1, $2)';
Query1.Params[0].AsString := 'New category';
Query1.Params[1].AsString := 'New description';
Query1.Params[2].AsInteger := $0334;
Query1.Execute;
Wobei das .Params[123] natürlich auch bei den oberen Varianten im Programm genutzt werden kann.
Bei deinem Beispiel werden die Namen auch nicht verwendet, sondern einfach mit dem Array
['New category', 'New description', $0334]
nacheinander die Parameter gefüllt werden, egal wie sie heißen.