Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приложение C# + SQL Server 2008 
:(
    Опции темы
Areostar
Дата 22.4.2011, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: 0
Всего: -2



Пишу приложение с использованием SQL Server 20008. для того чтоб приложение можно было устанавить на другие компы, во время инстоляции прогримма должна выполнить определённый SQL-скрипт. Скрипт у меня уже есть. Но вот как прописать впроге исполнение скрипта, причём только один раз при установке программы!?


     Подскажите пожалуйста!

Это сообщение отредактировал(а) Areostar - 22.4.2011, 15:19
PM MAIL   Вверх
A5uKa
Дата 22.4.2011, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



ExecuteNonQuery ?
PM   Вверх
Areostar
Дата 22.4.2011, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: 0
Всего: -2




 ЗА функцию спасибо! А вот вак сделать чтоб она выпольнялась только при установке!?
PM MAIL   Вверх
chip_and_dayl
Дата 22.4.2011, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



Скрипт я так понимаю создает базу!?! Так в чем проблема сделать проверку на наличие соответствующей базы?

Добавлено через 1 минуту и 45 секунд
Еще как вариант можно скрипт запускать всегда, просто в теле скрипта можно поставить проверку, если база существует то отменяется выполнение скрипта. Но тут есть свой минус, скрип всегда выполняется

А вообще такое лучше отделять от приложения. Или переложить на инсталятор или на отдельную утилиту


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
jonie
Дата 22.4.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



в ExecuteNonQuery надо передавать один батч (батчи по умолчанию словом GO разделяются). Сам он ничего не разделит, т.е. еще надо написать batchParser.

Если есть желание то можете мой проектик "допилить" https://bitbucket.org/jonie/sqlinstaller/overview , хотя он был вроде как самостоятельный, и там C++


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Areostar
Дата 23.4.2011, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: 0
Всего: -2



Цитата

еще надо написать batchParser.


   А по подробнее об этом рассказать можете?
PM MAIL   Вверх
jonie
Дата 23.4.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



А что там рассказывать? По приведенной мной ссылке есть написанной мной же парсер батчей.
https://bitbucket.org/jonie/sqlinstaller/sr...b/BatchScript.h

и он, кстати, более корректный, нежели в MSSQL 2008 например (не парсит тамшний парсер некоторые вещи, например GO/*commented*/) ....

только у меня НЕ умеет парсить конструкции GO integer, они и не поддерживаются уже в 2008-ом парсере...

Это сообщение отредактировал(а) jonie - 23.4.2011, 11:34


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Areostar
Дата 24.4.2011, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: 0
Всего: -2



На счёт вашего исходника! Что-то немогу понять как передавать туда содержимое файла(скрипт) и получать обработанные куски на исполнение!?

И ещё если разделить скрипт на запросы и вбить в код - это будет работать!?

Это сообщение отредактировал(а) Areostar - 24.4.2011, 09:11
PM MAIL   Вверх
jonie
Дата 24.4.2011, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



а рядом чО, не судьба посмотреть?)
Код

CString script = L"create table blablabla .....";

                                CBatchScript parser(script);
                                for(CBatchScript::script_iterator scriptIt = parser.begin(); scriptIt!=parser.end(); ++scriptIt) {
                                        executedScript = *scriptIt;
                                        if(executedScript.Trim().GetLength()==0) continue;

                                        conn->Execute(_bstr_t(executedScript), &vtMissing, ADODB::adOptionUnspecified);
                                        //Sleep(200);
                                }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Areostar
Дата 24.4.2011, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: 0
Всего: -2



 а на счёт второй части вопроса что скажете!? Глупость или можно попробывать! smile 

Это сообщение отредактировал(а) Areostar - 24.4.2011, 09:24
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.