Вставьте данные в базу данных [Delphi]

Я пытаюсь использовать компонент TAdoTable,

  • На форме Создают, я называю.Append (), и в кнопке я называю.Post ()

но это загружает всю таблицу! Мне не нужен он для загрузки чего-либо, просто должен вставить строку в эту таблицу.

Я задавался вопросом, существует ли "хороший способ" вставки данных в базу данных с Суматохой, я уже попытался использовать "ручной" подход с TAdoCommand, но это не делает кажется правильным мне

  • Я генерирую Запрос на вставку с помощью Формата (), и всех строковых полей оставляют с QuotedStr ()

Заранее спасибо!

Arthur.

5
задан arthurprs 26 February 2010 в 20:10
поделиться

4 ответа

Вы можете использовать TADODataset (или TADOQuery).

Иногда я делаю это, задавая в CommandText возврат 0 записей из таблицы, т.е. SELECT TOP 0 * FROM [table], затем использую .Append и .Post

Но лично я предпочитаю писать SQL, например, с помощью TADOCommand

6
ответ дан 18 December 2019 в 11:55
поделиться

Вы также можете использовать компонент TADOCommand и заставить его выполнять определенную команду SQL. Если вы обнаружите, что выполняете одну и ту же команду снова и снова (например, вставляете в таблицу), рассмотрите возможность использования параметров, а не прямого изменения SQL для каждого вызова. Параметры просты в использовании, просто поместите: PARAMNAME в свой sql, затем используйте объект параметров в компоненте ado, который вы используете, чтобы установить значение. Например:

Предполагается, что CommandText компонента TAdoCommand содержит « INSERT INTO TABLENAME (FIELD1) VALUES (: FIELDVALUE1) »

AdoCommand1.Parameters.ParamByName('FIELDVALUE1').Value := 'TEST'
AdoCommand1.Execute;

При выполнении вышеуказанного sql строка «TEST» будет быть записанным в FIELD1.

2
ответ дан 18 December 2019 в 11:55
поделиться

Используйте объект TADOQuery, если вам не нужно отображать данные таблицы.

В основном:

  • Используйте TADOQuery.SQL.Text для установки команды SQL
  • Используйте метод TADOQuery.ExecSQL для запуска команды SQL
6
ответ дан 18 December 2019 в 11:55
поделиться
var
  CountVar: Integer;

begin

  TADOConnection1.Execute(ASQLInsertStatement, CountVar, [adExecuteNoRecords]);

end;
1
ответ дан 18 December 2019 в 11:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: