информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Без SQL Prepare, конечно, можно обойтись... 10.09.08 18:30  Число просмотров: 1311
Автор: Den <Denis> Статус: The Elderman
Отредактировано 10.09.08 18:30  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> Вот такой код. Я понимаю, что здесь без SQLPrepare обойтись
> можно, но для единообразия с остальными запросами сделал
> так. Если в конец добавить ещё один SQLExecute, то
> образуется ошибка 24000.

Без SQL Prepare, конечно, можно обойтись...
Но так как ты постоянно используешь некоторый SQL запрос для получения свежих данных из БД, то SQLPrepare лучше оставить для ускорения выполнения запроса.
Только есть один важный момент - так как ты используешь процедурное программирование, то для хранения StatementHandles часто выполняющихся SQL запросов и их состояний "prepared" лучше использовать статические или глобальные переменные. В таком случае, для выполения SQL запроса ты сможешь проверить состояние IsPrepared и если оно "TRUE", то сразу запустить SQLExecute без SQLPrepare (естественно, что SQLPrepare в таком случае должен выполнятся на этапе инициализации приложения).

> Если между вызовами SQLExecute вставить SQLCloseCursor, то
> всё отлично. Это как раз та функция что мне была нужна,
> спасибо за помощь.

Так и должно быть. Курсор никогда сам не закрывается, за исключением случаев использования ручного управления транзакциями.

> Получается, перед каждым выполнением запроса я вызываю
> SQLCloseCursor. Так делать правильно, или что-то умнее
> есть?

Только не перед каждым, а после каждого (если запрос возвращает данные) ;)
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach