powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Где хранить тексты SQL-запросов?
25 сообщений из 25, страница 1 из 1
Где хранить тексты SQL-запросов?
    #33308151
Фотография Big17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Visual C++ 6

Ситуация: в программе вызывается несколько SQL-запросов. Все они довольно длинные. SQL-текст в коде "смотрится не очень". Вопрос: как правильно организовать хранение текстов SQL-запросов в программе?

Первый приходящий на ум вариант: хранить в отдельных *.sql-файлах, которые подгружать в ран-тайме. А вдруг кто-нибудь подправит этот файл? Плохо....
Второй вариант: хранить в строке ресурсов. Тут, в силу очень маленькой практики программерства под Visual C, ничего даже предположить не могу...
Или существует "общепринятый", проверенный вариант?
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33308758
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В хранимых процедурах на сервере БД.
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309070
Kagoric
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так...
В ресурсах создай Custom ресурс с именем, например,
SQLSCRIPT, в который помести все скрипты физически
расположенные в директории проекта (как файлы .sql).

И создай функцию их загрузки. Вызывай ее один раз
перед использованием.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
#define NUM_RES ( 2 ) //Колич. ресурсов.
char *g_sql[NUM_RES];
LPTSTR g_sqlres[NUM_RES] = 
 {MAKEINTRESOURCE(IDR_MAIN), 
   MAKEINTRESOURCE(IDR_DC)}; //Перечесляются все индентификаторы
   //ресурсов

void LoadSQL()
{
  DWORD size;
	
  for(int i =  0 ;i < NUM_RES;i++)
  {
    HRSRC ri = FindResourceEx(g_hMod, _T("SQLSCRIPT"), g_sqlres[i],
      MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL));

    hRes[i] = LoadResource(g_hMod, ri);

    size = SizeofResource(g_hMod, ri);

    char *t = new char[size +  1 ]; //Файл не UNICODE

    memcpy(t, LockResource(hRes[i]), size);

    t[size] =  0 ;

//В t находится запрос

    g_sql[i] = t;
  }
}

Естественно это самый простой способ (для примера).
Если добавляешь новый скрипт, то увеличиваешь
NUM_RES и дописываешь MAKEINTRESOURCE(...).
Можно, использовать функцию EnumResourceNames, тогда
дописывать ничего не нужно.
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309171
Фотография Big17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KagoricПопробуй так...

Спасибо. Буду пробовать...
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309282
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ хранимых процедурах на сервере БД.
именно так, а то в другом варианте, при поправке текста запроса (на более оптимальный и быстрый) будешь менять всем клиентам файлы и рессурсы.
Всё таки с СУБД работаем!
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309318
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Всё таки с СУБД работаем!я тут в дельфовой ветке предложил даже собственно экзешник хранить в базе, но что-то никто не прокомментировал ... :)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309719
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас Petro123Всё таки с СУБД работаем!я тут в дельфовой ветке предложил даже собственно экзешник хранить в базе, но что-то никто не прокомментировал ... :)
Posted via ActualForum NNTP Server 1.3
Чтоб там кого-то удивить нестандартными решениями надо ещё постараться ).
ЗЫ. Там бывает хранят в базе всё что захочется по вкусу:

биз-логику/формы/настройки/ООобъекты/exe-шники/.....
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309730
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не про удивление я :)

Просто ни одного комментария, типа: баян/фуфло/пох/круто, так и надо :)

да и ладно, сам попробую, тем более тут проект один назревает, там как раз много обновлений будет по мере его продвижения :)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309770
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасДа не про удивление я :)

Просто ни одного комментария, типа: баян/фуфло/пох/круто, так и надо :)

да и ладно, сам попробую, тем более тут проект один назревает, там как раз много обновлений будет по мере его продвижения :)
Posted via ActualForum NNTP Server 1.3
Дык там тема была - обсосали её со всех сторон.
Типа "Как обновлять версию exe-шников на клиентах если она лежит в БД."
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309789
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sql.ru/forum/actualthread.aspx?tid=56018&hl=%ef%e5%f0%e5%e7%e0%ef%f3%f1%f2%e8%f2%fc+exe#397954
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33309853
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неее, у меня немного не такая мысль, вобщем, попробую, потом расскажу, если что
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33310091
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас Petro123Всё таки с СУБД работаем!я тут в дельфовой ветке предложил даже собственно экзешник хранить в базе, но что-то никто не прокомментировал ... :)
А че тут коментировать? Действовать надо! У меня уже пара клиентских проектов состоит из одного маленького экзешника и кучки различных dll которые хранятся в БД. Очень удобно знаете ли :)
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33310426
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Big17Ситуация: в программе вызывается несколько SQL-запросов. Все они довольно длинные. SQL-текст в коде "смотрится не очень". Вопрос: как правильно организовать хранение текстов SQL-запросов в программе?


а в чем проблема ?

char *sql_cmd = "SELECT "
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" field1, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2, field2"
" FROM tbl";
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33310623
Фотография Big17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik

а в чем проблема ?

char *sql_cmd = "SELECT "

Вобщем-то да... запросы длинные, т.к. там много объединений таблиц....
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33311128
Kagoric
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Big17 Lepsik

а в чем проблема ?

char *sql_cmd = "SELECT "

Вобщем-то да... запросы длинные, т.к. там много объединений таблиц....
Проблема в том, что если в запрос необходимо внести
изменения и немалые необходимо будет переформатировать
каждый раз строку с "select", чтобы можно было ее как-то потом
воспринимать в коде.
А так внес изменения в файл, используя, например, Query Analyzer,
пересобрал проект и все.

Petro123
Всё таки с СУБД работаем!

Если это твоя СУБД :) А если необходимо собрать с базы сведения
заданным набором sql операторов с доступом только на чтение.
Задачи бывают разные...
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33311695
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kagoric
1. IMHO красивее и технологичнее статику запроса в Хранимку на сервере и передвать динамику туда через параметры. Правда надо помучиться, чтобы оптимизатор сервера оптимизировал благополучно эту ХП (там что-то с "... можно проверить ХП на "оптимизируемость" - не помню)
2. как человек любознательный предпочитаю знать несколько путей решения задачи (типа... вычисляемое поле в таблице есть не только в Excell а и в Word'e).
Чтобы оптимально решать разные задачи не изобретая велосипед (топик выше)

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33314009
Фотография Ranckont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я стараюсь SQL-запросы хранить в БД + типы переменных (bind).
Всегда можно поравить SQL и заодно проверить параметры если не так поправил...
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33314340
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасДа не про удивление я :)

Просто ни одного комментария, типа: баян/фуфло/пох/круто, так и надо :)

да и ладно, сам попробую, тем более тут проект один назревает, там как раз много обновлений будет по мере его продвижения :)
Posted via ActualForum NNTP Server 1.3
Попробовать надо, насколько худо становится серверу, если, скажем, несколько (если не все) человек одновременно выкачивают обновления. Да и не все всегда ходют к серверу через толстые каналы. Не всем может подойти.
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33314391
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется, любое решение имеет ограничения.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33316065
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы все еще храните тексты запросов не в хранимых процедурах ?
Тогда мы идем к вам !!
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33316245
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТогда мы идем к вам !!5 баллов ! :)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33317187
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичПопробовать надо, насколько худо становится серверу, если, скажем, несколько (если не все) человек одновременно выкачивают обновления. Да и не все всегда ходют к серверу через толстые каналы. Не всем может подойти.

Поддерживаю...Надо плясать от задачи, а не от религии. А переносить всё и вся в базу - то ближе к тонкому клиенту.


с уважением
(круглый)
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33318359
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВы все еще храните тексты запросов не в хранимых процедурах ?
Тогда мы идем к вам !!

есть много вещей на свете мой друг Горацио, которые не снились мудрецам. (C) Гамлет

не всякий сервер можно остановить если что-то сменилось в запросе, а вот приложение поменять куда как проще. Так что не обощай и не будешь обощенным.
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33318503
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsikне всякий сервер можно остановить если что-то сменилось в запросе, а вот приложение поменять куда как проще. Так что не обощай и не будешь обощенным.
Не всякий сервер нужно останавливать для обновления хранимой процедуры. Далекоооо не всякий :)
...
Рейтинг: 0 / 0
Где хранить тексты SQL-запросов?
    #33318590
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik
не всякий сервер можно остановить если что-то сменилось в запросе, а вот приложение поменять куда как проще. Так что не обощай и не будешь обощенным.

Зачем его останавливать ? Пусть работает.
А это -- совет "с той стороны", с серверной. Так будет лучше не только клиенту, но и серверу, и ему в первую очередь. Да и вообще это забота тех людей, которые сервером занимаются, где им хранить запросы.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Где хранить тексты SQL-запросов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]