Вниз
Скачать: 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.013 c
2-1181789232
Wahnsinng
2007-06-14 06:47
2007.07.08
Нужна помощь по созданию WebBrowser


15-1180611153
TUser
2007-05-31 15:32
2007.07.08
Очередной шпиёнский камень


3-1176199544
Micke_2007
2007-04-10 14:05
2007.07.08
linked server


15-1181050079
Zagaevskiy
2007-06-05 17:27
2007.07.08
Как подсчитать сумму 1+1/1!+1/2!+1/3!+...


2-1181655463
Riply
2007-06-12 17:37
2007.07.08
Анализ Boot-сектора флоппика.




   Наверх