Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнения скрипта средствами Firebird, Без использования стороннего ПО 
V
    Опции темы
Gluttton
Дата 24.10.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


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

Репутация: 7
Всего: 54



Существует ли возможность выполнять скрипты средствами Firebird?


--------------------
Слава Україні!
PM MAIL   Вверх
FMA
Дата 24.10.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 30.4.2008

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



Да, используя API сервера. 
PM MAIL   Вверх
Gluttton
Дата 24.10.2009, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


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

Репутация: 7
Всего: 54



Цитата(FMA @  24.10.2009,  19:53 Найти цитируемый пост)
Да, используя API сервера. 

 smile 
А можно подробнее?


--------------------
Слава Україні!
PM MAIL   Вверх
Akella
Дата 25.10.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



1. Используя обычную кверю? autoddl := false

Код
IBQuery.sql.text := 'drop table mytable';
IBQuery.ExecSql;



2. pFibScripter (в составе FIb+), возможно, что в тырнете есть бесплатная версия, которая существоала до входа в состав Fib+

Добавлено @ 11:08
Ну а самый правильный, наверное, и идеальный вариант - таскать с собой библиотеку IBExpert`а. Загляни в папку IBEScriptDll, там где установлен IBExpert. Но эта библиотека весит >6 метров

Это сообщение отредактировал(а) Akella - 25.10.2009, 11:10
PM MAIL   Вверх
Gluttton
Дата 25.10.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


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

Репутация: 7
Всего: 54



Akella, я собственно говоря, к чему это...

Предположим я общаюсь с кем либо, в рамках совместного проекта. Воссоздание приложений может быть выполнено с помощью компиляторов и различных библиотек. И для распространения приложения достаточно обмениваться исходным кодом.
А как быть с БД? Неужели если я хочу поделиться своим решением я должен выкладывать БД? Или же я выкладываю набор команд, а кто то должен терпеливо их вводиь в isql.exe?

Я то с удовольствием использую IBExpert, но вдруг скрипт потребуется выполнить пользователю у которого кодовая страница по умолчанию не предоставляет бесплатный доступ к IBExpert'y smile? Да и думаю (надеюсь), что должно же быть какое то "нативное" решение этого вопроса.

Цитата(Akella @  25.10.2009,  11:03 Найти цитируемый пост)
Ну а самый правильный, наверное, и идеальный вариант - таскать с собой библиотеку IBExpert`а. Загляни в папку IBEScriptDll, там где установлен IBExpert. Но эта библиотека весит >6 метров


Меня размер не смущает... Ведь для того, что бы сколько угодно раз собирать скрипты достаточно один раз скачать 6М, а это я думаю не проблема... Вопрос в том честно ли так?


--------------------
Слава Україні!
PM MAIL   Вверх
Akella
Дата 25.10.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Я распространяю БД. Мороки меньше. И встроить в программу возможность выполнять скрипты ручками (в программе) или выполнять скрипт из файлов на старте программы.


Цитата(Gluttton @  25.10.2009,  11:24 Найти цитируемый пост)
терпеливо их вводиь в isql.exe?

Почитай, isql может выполнять скрипты из файлов.


Цитата(Gluttton @  25.10.2009,  11:24 Найти цитируемый пост)
Да и думаю (надеюсь), что должно же быть какое то "нативное" решение этого вопроса.

нативное для кого/чего?


Цитата(Gluttton @  25.10.2009,  11:24 Найти цитируемый пост)
Меня размер не смущает... Ведь для того, что бы сколько угодно раз собирать скрипты достаточно один раз скачать 6М, а это я думаю не проблема... Вопрос в том честно ли так? 

Думаю, что да. Эксперт бесплатен для граждан бывшего СНГ.
PM MAIL   Вверх
Gluttton
Дата 25.10.2009, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


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

Репутация: 7
Всего: 54



Цитата(Akella @  25.10.2009,  11:31 Найти цитируемый пост)
нативное для кого/чего?

Для Firebird'a
Цитата(Akella @  25.10.2009,  11:31 Найти цитируемый пост)
Почитай, isql может выполнять скрипты из файлов.

Именно это я имел ввиду.
А как можно выполнить скрипт из isql (или где почитать)?


--------------------
Слава Україні!
PM MAIL   Вверх
Akella
Дата 25.10.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Как где, в справке (в документации).
Разве у тебя нет папки C:\Program Files\Firebird\Firebird_2_0\doc
Там есть файл README.isql_enhancements.txt

 Ну или погуглить. Можно в книге Хеллен Борри.
PM MAIL   Вверх
FMA
Дата 25.10.2009, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 30.4.2008

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



Вся работа с БД ведется через библиотеку fbclient.dll или gds32.dll
Более подробно об использовании API этих библиотек можно прочитать в документации API Guide http://www.ibase.ru/firebird.htm 
Сразу скажу, что сам напрямую с командами библиотек не работал, т.к. в большинстве своем работаю в с компонентами FibPlus, которые и работают с API.
PM MAIL   Вверх
Gluttton
Дата 25.10.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


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

Репутация: 7
Всего: 54



Akella, 
Цитата(Akella @  25.10.2009,  11:52 Найти цитируемый пост)
Разве у тебя нет папки C:\Program Files\Firebird\Firebird_2_0\docТам есть файл README.isql_enhancements.txt


Спасибо, помогло!

Цитата(Akella @  25.10.2009,  11:52 Найти цитируемый пост)
 Ну или погуглить.

Да пробовал, не признается мне Googl... Может меня забанили в googl'e smile ...

FMA, спасибо за ссылку.


--------------------
Слава Україні!
PM MAIL   Вверх
Deniz
Дата 26.10.2009, 07:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



В свое время рядом с IBExpert лежали файлы: IBECompare.exe (~700K) и IBEScript.exe (~3M)
По названию не сложно догадаться о их назначении.
Написав небольшой bat-файл можно автоматизировать процесс сравнения 2-х БД и выполнения скриптов, например:
Код
IBECompare -D -Cconfig.ini -Oresult.sql
IBEScript.exe result.sql -S -N -E -VScriptLog.txt
в файле result.sql разница между 2 БД(скриптами)
пример Config.ini:
Код
;[MasterDB]
;ConnectString=localhost:d:\1\test.fdb
;Username=SYSDBA
;Password=masterkey
;Charset=WIN_1251
;ClientLib=gds32.dll
; Next item will be used while comparing tables
;TableName=CUSTOMER
 
; Instead of MasterDB section you can use MasterScript section:
[MasterScript]
ScriptFile=d:\1\test.sql
 
[TargetDB]
ConnectString=localhost:d:\1\test_2.fdb
Username=SYSDBA
Password=masterkey
Charset=WIN_1251
ClientLib=gds32.dll
; Next item will be used while comparing tables
TableName="Customer"
 
; Instead of TargetDB section you can use TargetScript section:
;[TargetScript]
;ScriptFile=d:\1\test_2.sql
 
[CompareObjects]
Domains=1
Tables=1
Views=1
Triggers=1
Procedures=1
Generators=1
Exceptions=1
Functions=1
Roles=1
Indices=1
Grants=1
Descriptions=1
PrimaryKeys=1
ForeignKeys=1
Uniques=1
Checks=1
 
[Options]
; Next items will be used while comparing tables
ProcessINSERTs=1
ProcessUPDATEs=1
ProcessDELETEs=1
давно пользуюсь, вполне работоспособно.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Gluttton
Дата 26.10.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


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

Репутация: 7
Всего: 54



Deniz, спасибо за то, что поделился опытом  smile !


--------------------
Слава Україні!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

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

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


 




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


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

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