Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

Query   Найти похожие ветки 

 
Ral'f   (2007-06-14 09:53) [0]

Вопрос по структуре запроса:
ситуация следующая - программа выполняет последовательно несколько процедур, результат выполнения каждой необходимо сохранить в таблице Access. И вот, вроде бы, Таблица одна и та-же, везде один и тот-же INSERT, только разные значения переменных. Как можно организовать в такой ситуации сохранение в БД новых записей? что будет лишним?
if Query.Active then Query.Close;
...
Query.Open;
...
Query.Close;


 
Sergey13 ©   (2007-06-14 10:21) [1]

> [0] Ral"f   (14.06.07 09:53)
> что будет лишним?

Да все. Приведенный код вообще тут никак к вопросу не относится.


 
ЮЮ ©   (2007-06-14 10:27) [2]

> что будет лишним?

Всё.
> везде один и тот-же INSERT, только разные значения переменных


Query.SQL.Text := "INSERT INTO xxx(f1, ..., fn) VALUES (:f1, ..., :fn )";

Query.Parameters[0].Value := ...;
...
Query.Parameters[n-1].Value := ...;
Query.ExecSQL;

...

Query.Parameters[0].Value := ...;
...
Query.Parameters[n-1].Value := ...;
Query.ExecSQL;

Если же Query возвращает НД (коль поминаются Open, Close), то можно просто
Query.Insert;  // вставить запись
Query.Fields[0].asXXX := ... // заполнить поля
...
Query.Post; // запомнить изменения - здесь движок и выполнт >везде один и тот-же INSERT, только разные значения переменных


 
Ral'f   (2007-06-14 10:29) [3]

> Приведенный код вообще тут никак к вопросу не относится

Всё по книге!
try Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add(...);
    Query1.Open;
    ...


только не написано, - как можно сделать, когда запрос один и тот-же, чтобы не переписывать всё по несколько раз!


 
Ral'f   (2007-06-14 10:31) [4]

Ещё раз спасибо, ЮЮ!!!


 
ЮЮ ©   (2007-06-14 10:31) [5]

> когда запрос один и тот-же, чтобы не переписывать всё по несколько раз используют параметрические запросы


 
Desdechado ©   (2007-06-14 11:16) [6]

ЮЮ ©   (14.06.07 10:31) [5]
Если совсем правильно, то параметрические запросы использовать следует всегда, а не только когда один и тот же запрос.


 
Sergey13 ©   (2007-06-14 11:20) [7]

> [6] Desdechado ©   (14.06.07 11:16)

А смысл? Я не говорю, что не надо параметры использовать, но одиночный неповторяющийся запрос все равно будет разбираться полностью и все равно ляжет в кеш запросов (если есть таковой).


 
Sergey13 ©   (2007-06-14 11:22) [8]

Кстати для Аксеса (мне так кажется) параметры вообще только помогают избежать ошибок формата данных.


 
Desdechado ©   (2007-06-14 11:23) [9]

Чтоб избежать, например, таких граблей
http://delphimaster.net/view/2-1181798599/

И просто гораздо читабельнее код, чем конструирование SQL из огрызков.


 
Sergey13 ©   (2007-06-14 11:29) [10]

> [9] Desdechado ©   (14.06.07 11:23)
> чем конструирование SQL из огрызков.
Так это если конструирование есть. Значит тут параметры более чем оправданы. А если нет конструирования?
Я не в качестве спора, просто в качестве ремарки на очень уж обобщенное утверждение.


 
Anatoly Podgoretsky ©   (2007-06-14 12:16) [11]

Параметры всегда полезны, хотя бы потому что вероятность повторения запросов далеко отлична от нуля.


 
имя   (2007-06-14 12:21) [12]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1181857598
Infinityx93
2007-06-15 01:46
2007.07.08
как сделать 2 знака после запятой у числа типа риал????


8-1161756740
Mishenka
2006-10-25 10:12
2007.07.08
Как указать палитру в BMP ?


15-1181237054
vch
2007-06-07 21:24
2007.07.08
В два раза больше - можно?


15-1181381873
ZeroDivide
2007-06-09 13:37
2007.07.08
COM-порт на новом железе


2-1181996528
nord489
2007-06-16 16:22
2007.07.08
ADOConnection