Я пытаюсь использовать компонент TAdoTable,
но это загружает всю таблицу! Мне не нужен он для загрузки чего-либо, просто должен вставить строку в эту таблицу.
Я задавался вопросом, существует ли "хороший способ" вставки данных в базу данных с Суматохой, я уже попытался использовать "ручной" подход с TAdoCommand, но это не делает кажется правильным мне
Заранее спасибо!
Arthur.
Вы можете использовать TADODataset (или TADOQuery).
Иногда я делаю это, задавая в CommandText возврат 0 записей из таблицы, т.е. SELECT TOP 0 * FROM [table]
, затем использую .Append
и .Post
Но лично я предпочитаю писать SQL, например, с помощью TADOCommand
Вы также можете использовать компонент 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.
Используйте объект TADOQuery, если вам не нужно отображать данные таблицы.
В основном:
var
CountVar: Integer;
begin
TADOConnection1.Execute(ASQLInsertStatement, CountVar, [adExecuteNoRecords]);
end;