![]() |
|
|
![]()
|
|
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
Создаю инсталяшку для своей проги, прога заточена под InterBase, разные версии которого имеют разные форматы базы данных, поэтому создать чистый *.GDB файл у себя, а потом его просто копировать не подходит, т к используемая у клиента IB может быть другая и соответственно он (IB) может просто не понять структуры того файла, который ему подсовывают. Поэтому делаем так: имеется список SQL запросов, которые последовательно выполняет программы инсталятор. Таблицы (Create Table...), генераторы (Create Generator...), триггеры (Create Trigger..), определение внешних UDF функций (Declare External Function ...), выполняются прекрасно. Прекрасно выполняется и создание хранимой процедуры (Create Procedure...). Но! Для того все это добро "осталось" в базе данных я положительно подтверждаю транзакцию IBTransaction.Commit;, при этом происходит трабла:
и соответственно все это добро (таблицы, триггеры,...) не сохраняются Что за неверное число параметров?! Ошибка не возникает если не создавать хранимку. Что такое происходит и как с этим бороться. Т е как правильно создать и сохранить хранимую процедуру в создаваемой базе данных. ЗЫ: если это имеет значение: хранимка довольно большая (~1500 символов), имеет входные параметры, ничего не возвращает (нет выходных параметров), нет локальных переменных. ЗЗЫ: Delphi 2005 for Win32, InterBase 7.5 -------------------- животное = зверь законченный гентушник |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Так сказать практически ничего нельзя, нужно смотреть SQL, узнать чем ты хотя бы выполняешь SQL и т.д.
PS: Пока напрашивается ответ "Ошибка в 17 строке" -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
Текст запроса создания процедуры синтаксически правилен, если его выполнить в IBConsole для этой БД - процедура создаётся, а вот в программе - нет....
запросы выполняются через компоненту IBSQL Вот собственно текст хранимки:
Сначала таблица очищается, потом в неё данные вствляются, три раза... -------------------- животное = зверь законченный гентушник |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Ну, что тут можно сказать:
1. Если уж хотите пользоваться экспертами, то уж точно не IBConcole, т.к. любой грамотный эксперт скажет, что скрипт для создания процедуры выглядит приблизительно так:
2. FAQ читать нужно http://vingrad.ru/DELPHI-DLP-001854 -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
ну что ты сразу не сказал?... Добавлено @ 23:32 Зы: номер 1 не пашет, так как ругается сразу на SET, да и нивозможно в IBX.SQL запихнуть более одного законченого выражения SQL. -------------------- животное = зверь законченный гентушник |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
SPrograMMer, кто же базу создает с помощью TSQL, базу все обычно создают с помощью скрипта. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| SPrograMMer |
|
||||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
ну.... век живи-век учись. И за это спасибо. Год назад, например, для парадоксовской базы, я вобще писал что-то типа:
-------------------- животное = зверь законченный гентушник |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |