Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Ошибка в IBX?   Найти похожие ветки 

 
tria ©   (2004-03-10 17:23) [0]

Пользую TIBSql. Для поля Decimal(15,6) при переборе выборки в строке q.Fields[j].AsVariant возникает ошибка. При чем варианты:
q.Fields[j].AsInteger,AsDouble,AsString выполняются нормально.
Сервер - Firebird 1.5 Embedded

Большая просьба: варианты "перейди на FIBplus" не предлагать.


 
Johnmen ©   (2004-03-10 17:27) [1]

Это очень серьезная ошибка...
:)


 
tria ©   (2004-03-10 17:32) [2]

>Johnmen
Спасибо на добром слове.
Но для меня это действительно серьезная ошибка, т.к. я не знаю заранее какого типа у меня поле.


 
Domkrat   (2004-03-10 17:45) [3]

>Но для меня это действительно серьезная ошибка, т.к. я не знаю >заранее какого типа у меня поле.

Ответ:

>Пользую TIBSql. Для поля Decimal(15,6)


 
Johnmen ©   (2004-03-10 17:50) [4]

>tria ©   (10.03.04 17:32) [2]
>т.к. я не знаю заранее какого типа у меня поле.

Есть св-во DataType :)


 
tria ©   (2004-03-10 17:57) [5]

Могу ошибаться, но:
property Fields[const Idx: Integer]: TIBXSQLVAR;
А TIBXSQLVAR не имеет свойства DataType


 
Johnmen ©   (2004-03-10 18:04) [6]

Но имеется SQLType


 
tria ©   (2004-03-10 18:13) [7]

>Johnmen
Спасибо, SQLType помогло.
Хотя все-таки это несколько сродни шаманству.


 
Johnmen ©   (2004-03-10 18:15) [8]

>tria ©   (10.03.04 18:13) [7]
>Хотя все-таки это несколько сродни шаманству.

Что конкретно ?


 
tria ©   (2004-03-10 18:20) [9]

Отслеживать текущий тип, и только если он Double то использовать AsDouble, а во всех остальных случаях - AsVariant. А мест много, вероятность пропустить где-то большая.


 
Johnmen ©   (2004-03-10 18:25) [10]

Вообще-то к полям НД принято (обычно) обращаться по имени.
А если мы знаем имя поля и таблицу, то наверное знаем его, поля, параметры...:)


 
tria ©   (2004-03-10 18:34) [11]

Задачу делаю не совсем обычную: пользователь сам задает структуру базы.
Обращение к полю делаю по номеру, т.к. это быстрее. А то сначала надо вызвать функцию, которая вернет наименование поля, а затем еще и в IBX будут перебираться наименования полей.
А если идет заполнение таблицы из пары тысяч записей, то по-моему налицо потеря производительности, хотя и небольшая.


 
Johnmen ©   (2004-03-10 18:41) [12]

>т.к. это быстрее. /и далее по тексту/

Быстрее. Но на сколько ? На пару наносекунд ? :)

>А если идет заполнение таблицы

Не понял... Где здесь и в вопросе про заполнение таблицы ????????????


 
tria ©   (2004-03-10 18:59) [13]

Вопрос я задавал по-существу (по моему), не вдаваясь в детали.
Данная конструкция встречается в программе в нескольких местах, в том числе и при заполнении таблицы.
Для меня что название поля, что его номер имеют одинаковое смысловое значение - не я давал название, не я выставлял порядок следования полей. Тем более, что ко всем полям идет обращение в цикле - перебираются реквизиты объекта. Текст запроса тоже создается динамически.
Я боялся что беседа перейдет в такое русло, и это все-таки произошло.
Я пишу программу - конструктор для решения различных учетных задач. Если есть желание - могу кинуть работоспособный вариант для рецензии. В сжатом виде с Firebird embedded где-то 3 Мб.


 
Johnmen ©   (2004-03-10 19:03) [14]

>Если есть желание - могу кинуть

Не, не так. Если у тебя есть желание - то кидай
:)
Но только без FB


 
Mike Kouzmine ©   (2004-03-10 19:43) [15]

И здесь кидают.....



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
8-1070888379
sivka
2003-12-08 15:59
2004.04.04
Заливка, раскраска любой ограниченной области


3-1078209099
Evyshka
2004-03-02 09:31
2004.04.04
Обращение через алиас и путь


3-1078434009
Antichrist
2004-03-05 00:00
2004.04.04
DBF-формат файла


3-1078930088
Келд
2004-03-10 17:48
2004.04.04
FreeUDFLib


1-1079246174
Sphinx
2004-03-14 09:36
2004.04.04
Popup Menu и его координаты