Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.017 c
15-1181036368
MVGROB
2007-06-05 13:39
2007.07.08
гаспада, мнебы програмера в москве 40000-55000р, срочно. если ест


1-1178626631
ambhtr
2007-05-08 16:17
2007.07.08
Не получаетс разархивировать из Delphi


8-1161102241
Jimmy
2006-10-17 20:24
2007.07.08
Wmf и Dpi


15-1181307842
Loginov Dmitry
2007-06-08 17:04
2007.07.08
Утечки памяти в Delphi2006


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




   Наверх