MS SQL. Не выполняется "внешний" скрипт ...

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
lex
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 22.12.2004 (Ср) 20:14

MS SQL. Не выполняется "внешний" скрипт ...

Сообщение lex » 25.12.2004 (Сб) 13:53

Доброго времени суток!

Есть проблемка, помощь в решении которой хотелось бы тут получить. :)

Имеется БД В MS SQL. Средствами VB создаю временный скрипт ххх.sql, который запускается на выполение из командной строки через osql ... Скрипт представляет собой не что иное, как запрос на обновление полей, но название таблицы и полей представляют смесь латинницы и кириллицы :(.

Так вот при запуске этого скрипта через QA все работает как положено, а при запуске через osql не отрабатывает. Причина как я понял в различных кодировках.

Как можно, создавая средствами VB текстовый файл, указать его кодировку? И какая кодировка используется в SQLe?

Заранее спасибо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.12.2004 (Сб) 14:19

Никак нельзя.
Можно обработать строку перед помещением в файл.
Думается, имеет смысл заценить функцию CharToOemBuf...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

lex
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 22.12.2004 (Ср) 20:14

Сообщение lex » 25.12.2004 (Сб) 16:55

2 GSerg

А можно, если не затруднит, поподробнее про эту функцию, а то я "новичек" в VB.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.12.2004 (Сб) 17:00

Private Declare Function CharToOemBuff Lib "user32.dll" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 25.12.2004 (Сб) 18:26

Гкхм. Если не секрет, а в чем причина такого своеобразного действа - отработка скрипта из файла через osql? Параллельности захотелось, что ли? :)

lex
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 22.12.2004 (Ср) 20:14

Сообщение lex » 25.12.2004 (Сб) 20:04

2 GSerg
Пасиб за помощь.

2 Ennor
Таким "своеобразным действом" осуществляется восстановление в новую БД существующего архива без прямого общения с SQLем.

ЗЫ. Вероятно это можно осуществить как-нибудь иначе, но как - я не знаю.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 25.12.2004 (Сб) 20:08

Эээ. Вообще-то RESTORE DATABASE - это одна-единственная команда. Ее можно и на отдельном коннекшне выполнить, причем в асинхронном режиме. Ну а если у тебя имеются какие-то дополнительные процедуры, обусловленные бизнес-логикой системы, то можно их все запихнуть в хранимку, оную положить в базу master, и ее запускать, при необходимости, опять-таки с отдельного коннекшна в проге. Не вижу препятствий...

lex
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 22.12.2004 (Ср) 20:14

Сообщение lex » 25.12.2004 (Сб) 20:31

[off]Дело в том, что MS SQL для меня так же в новинку, как и VB, просто по ходу работы пришлось с этим столкнуться и понемногу начать разбираться. Поэтому я пока не особо силен ни в MS SQL, ни в VB :([/off]

А теперь пояснение. Все вышеописанное проделывается для установки демо-версии проги, бэкап базы в данном случае очень удобен тем, что в нем уже есть все необходимое для функционирования системы. Соответственно ресторе делаются на разных серверах и ту же ХП в него все равно нужно засунуть.
А такой способ имо позволяет это сделать относительно просто.
Если я не прав, готов выслушать и возможно принять на "вооружение" конструктивную критику :) и предложения.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 26.12.2004 (Вс) 19:06

Ммм. Видимо, мне банально нечего предложить :) . Если только... я слыхал, что некоторые сетап-генераторы умеют сами прогонять скрипты на сервере в процессе установки программы. Хотя, наверное, у вас там уже все отлажено. :)

lex
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 22.12.2004 (Ср) 20:14

Сообщение lex » 27.12.2004 (Пн) 10:54

Ну на счет отлажено, я б так не сказал... Все пока в процессе.
Если вспомните название такого сетап-гена буду признателен. :)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 27.12.2004 (Пн) 13:23

Хм. Попробуй порыться в Wise Installer, может он уметь. Тут вопрос не в том, чтобы найти инсталлятор, который это умеет, а в том, чтобы найти такой, в котором можно разобраться без того, чтобы проходить фирменные курсы. Тот же InstallShield наверняка умеет, но в нем черт ногу сломит...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.12.2004 (Пн) 13:33

Wise 9.2 напрямую с sql не работает, но можно вызывать любую прогу
мы делали сетап, который запускал osql атачил базы, но все равно в силу разных причин бывали проблемы, связанные с самим sql

lex
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 22.12.2004 (Ср) 20:14

Сообщение lex » 28.12.2004 (Вт) 12:08

Всем пасиб. Буду разбираться...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron