najlepszy sposób na wstawianie danych przy użyciu Dephi na serwerze SQL 2008

Zawsze używałem takiego skryptu do wstawiania danych do tabeli w delphi 7

sql := 'INSERT INTO table_foo (field1,field2,field3) VALUES ('
+quotedstr('value1')
+','+quotedstr('value2')
+','+quotedstr('value3')
+')';
adoquery1.close;
adoquery1.sql.text := sql;
adoquery1.execsql;

ale jeden z moich przyjaciół właśnie pokazał mi inny sposób, który wygląda bardziej czysto:

sql := 'SELECT * FROM table_foo';
adoquery1.close;
adoquery1.sql.text := sql;
adoquery1.open;
adoquery1.insert;
adoquery1.fieldbyname('field1').asstring := quotedstr('value1');
adoquery1.fieldbyname('field2').asstring := quotedstr('value2');
adoquery1.fieldbyname('field3').asstring := quotedstr('value3');
adoquery1.post;

która z dwóch metod jest lepsza (szybsza, łatwiejsza do odczytania / debugowania)? zwłaszcza gdy dane wtable_foo jest duży lub jest dużo więcej pól do wypełnienia.

questionAnswers(2)

yourAnswerToTheQuestion