Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вернуть из процедуры Numeric(15,0), Delphi7 + FB 1.5 (InterBase) 
:(
    Опции темы
TheCetus
Дата 21.3.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возникла следующая проблема:
на сервере имеется процедура Object_Add которая возвращает один параметр Result (тип Numeric(15,0))
в делфе использую компоненты prcADd : TIBStoredProc.
при вызове процедуры prcAdd в моем приложении выскакивает ошибка Invalid Data Convercion.
указывал тип параметра ftInteger, ftLargeInt - не помогает.
удалось вылечить, если изменить на сервере тип возвращаемого параметра на Result Integer.
Вопрос, как обойтись без смены на сервере возвращаемого типа? т.е. чтобы сервер возвращал не Integer а Numeric(15,0) ?
Добавлено @ 19:06
в своем приложении использую компоненты с закладки InterBase
PM MAIL   Вверх
Alex
Дата 22.3.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Поставить тип параметра ftFloat


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
TheCetus
Дата 22.3.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



не помогло, ошибка осталась
помогает только если установить тип возвращаемого результата numeric(15,x), где x <> 0
база работает на Dialect 3.
как думает народ для первичного ключа достаточно будет типа integer?

Это сообщение отредактировал(а) TheCetus - 22.3.2006, 11:53
PM MAIL   Вверх
Alex
Дата 22.3.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



А вы думаете для первичного ключа привысить придел integer в 2 147 483 647 если очень боитесь, то поставьте bigint 9 223 372 036 854 775 807 (как говорит один мой знакомый "столько звезд на небе нет, что бы привысить bigint")


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
TheCetus
Дата 22.3.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



т.е. другого решения кроме как выставить ftFloat нет?
PM MAIL   Вверх
Alex
Дата 22.3.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Честно, не проверял, я уже давно не работаю с IB (перешел на FIB+), но если уж так прям ребром вопрос, сейчас посмотрю, что там и почему он float не принимает.

А в обще я бы советовал первичные ключи делать bigint


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 22.3.2006, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Может я конечно, что-то не так вас понял, но:
Создал процедуру:
Код

CREATE PROCEDURE NEW_PROCEDURE 
RETURNS (
    NEW_PARAM NUMERIC(15,0))
AS
begin
  /* Procedure Text */
  new_param = 0;
  suspend;
end^

кинул на форму IBDatabase1, IBStoredProc1, IBTransaction1 и указал БД и имя процедуры.
Создал обработчик
Код

IBStoredProc1.ExecProc;

Запустил и у меня все нормально запустилось


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


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

1. Базы данных (Paradox, Oracle и т.п.)

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


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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