Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.058 c
4-1170172330
GrayFace
2007-01-30 18:52
2007.07.08
Сравнение имен файлов как в Explorer - чтобы 1 шел перед 100


15-1181329396
IMHO
2007-06-08 23:03
2007.07.08
Посоветуйте компонент для DB-визуализации


15-1181287515
balepa
2007-06-08 11:25
2007.07.08
Че то на RSDN зайти не могу


4-1169975166
LENIN_INC
2007-01-28 12:06
2007.07.08
LENIN INC WIN32API Library v1.2 (build 23.08.2006)


11-1163962193
Vladimir Kladov
2006-11-19 21:49
2007.07.08
Версия 2.43





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский