Включить сценарии sql в приложение VB6 - PullRequest
0 голосов
/ 13 марта 2009

Я поддерживаю старое приложение VB6 и хотел бы включить сценарии SQL непосредственно в часть проекта. Затем приложение VB6 должно извлечь текст этого сценария и выполнить его на сервере.

Причины такого подхода различны - среди прочего, мы хотим предоставить только обновленный исполняемый файл, а не полный пакет обновления / установки. Следовательно, сценарии SQL должны быть скомпилированы в приложение, как файл ресурсов. И, очевидно, нужно уметь получать контент из кода, чтобы отправить его на сервер базы данных.

У кого-нибудь есть хороший способ сделать это?

Ответы [ 3 ]

5 голосов
/ 14 марта 2009

Самое простое решение - просто создать модуль VB со сценариями в виде строк.

Если вы хотите использовать вместо этого файл ресурсов, вы можете сделать это тоже. Вы можете связать resfile с проектом VB (я не помню, как это сделать напрямую в VB IDE, но файл VBP поддерживает параметр ResFile32 ).

РЕДАКТИРОВАТЬ: Кажется, что проблема здесь в основном о форматировании - вы не хотите хранить SQL-запросы как одну длинную строку, но форматирование запроса в VB красиво утомительно, потому что вы должны добавить кавычки, добавить конкатенацию строк операторы для объединения линий и т. д.

Я бы порекомендовал поместить SQL в текстовый файл и отформатировать его так, как вам нравится. Напишите скрипт, который будет принимать текст и преобразовывать его в модуль VB. Процесс сборки будет изменен таким образом, чтобы всегда применять этот сценарий перед компиляцией приложения.

Для сценариев используйте ваш любимый язык сценариев; если у вас нет любимого языка сценариев, это достаточно простая задача, которую вы могли бы выполнить в VB, C # или любом другом языке. Если бы это был я, я бы использовал awk (gawk) или Python.

2 голосов
/ 14 марта 2009

Если вы хотите использовать ресурс (.RES) для хранения вашего SQL, перейдите в меню:

Надстройки> Менеджер надстроек ...

и выберите VB 6 Resource Editor . Настройте надстройку для загрузки и загрузки при запуске.

В надстройке редактора VB предоставляет простой интерфейс для добавления строк ресурсов. Вы будете ссылаться на них, используя предоставленные постоянные значения. Чтобы загрузить строки во время выполнения, используйте функцию LoadResString :

Public Const SQL_INSERT As Integer = 101
Dim strSQL As String 
strSQL = LoadResString(SQL_INSERT)

(замените «101» постоянным значением строки, которую вы хотите загрузить)

0 голосов
/ 17 марта 2009

Еще одна мысль о вашем подходе. Поскольку я настраиваю поведение программы или пользовательский интерфейс для клиентов, я могу быть в середине изменения, которое либо не готово, либо еще не было проверено и одобрено. Поэтому, если у меня есть свойства, которые время от времени меняются, но я хочу сохранить контроль, например, за настройками подключения к нашему ftp-серверу, я создам ресурс только для dll, предоставляющий мои свойства, и использую файл ресурсов в dll для предоставления ценности. Когда мой сетевой менеджер изменяет что-то на ftp-сервере, я изменяю строки в средстве ресурсов, перекомпилирую dll и выпускаю только обновленную dll. Я уверен, что есть еще много решений, но я так и делаю. Если вы не думаете, что вам, возможно, придется менять свои сценарии SQL в то же время, когда вы меняете свой exe, это, вероятно, только усложнит вашу работу. Для меня это сработало достаточно хорошо, и теперь это довольно стандартно для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...