Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизFOX,ADO и отрицательные числа Найти похожие ветки
← →
Алексей (2004-09-01 19:48) [0]Второй раз задаю этот вопрос:
TADOQuery тащит отрицательные числа неверно. Пример:select b.id_n,a.id_d,a.kol,a.pr from telo_n a,schapka_n b
where a.id_n=b.id_n
and
b.data_p=:data_p
and
b.cl=.t.
and b.mesto=:mesto
and a.kol<0
в гриде показывает записи, НО kol ПОЛОЖИТЕЛЬНЫЕ!!!
вариант
while not dm1.qGetNakl.Eof do begin
Memo1.Lines.Add(dm1.qGetNakl.FieldByName("id_d").AsString+" | "+
IntToStr(dm1.qGetNakl.FieldByName("kol").AsInteger));
dm1.qGetNakl.Next;
end;
тоже в MEMO дает положительные числа.
Пробовал брать количество как AsFloat - таже беда.
В вычислениях (может при отображении минус теряется?) таже ботва.
В прошлый раз справился использую кучу проверок в коде, но ведь это не выход.
Может кто-то из вас с подобной х...й сталкивался???
Таблицы FOX (мое проклятие!!!) и dBase (уж лучше бы все были в FOXе -и я бы на FOXе тогда написал). Использую следующую строку подключения:"DSN=Таблицы Visual FoxPro;UID=;PWD=;SourceDB="+
Put_k_BD+";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;"+
"Collate=Machine;Null=Yes;Deleted=Yes;";
← →
Алексей (2004-09-01 20:05) [1]Попробовал с BDE - заработало так как надо, но нет желания мешать в одной программе разные методы доступа к БД, тем более ставить клиентам BDE.
← →
sniknik © (2004-09-02 10:56) [2]> Может кто-то из вас с подобной х...й сталкивался???
для больших чисел (bigint в MSSQL) есть подобный "глючок" в реализации толи ADO толи дейфийской обертки (конкретно не разбирался), оно их в строке (char(19)) держит...(в рекордсете/либо при передаче в делфи) а если числа отрицательные то минус на максимуме теряется ;( (20 символов получается).
возможно у тебя похожая проблема тип поля большое число, или интерпретируется так. выход был, делал свое приведение к строке в запросе (естественно len 20 :).
← →
Алексей (2004-09-02 11:03) [3]В том то и дело, что поле описанно как numeric(6,0), да и значения от -1000 (ну очеь редко) до 1000. Основной диапазон значений от 0 до 30. А отрицательные от -30 до 0.
Может порыться в исходниках? Но для этого я не настолько владею дельфями :-(
← →
sniknik © (2004-09-02 11:09) [4]> поле описанно как numeric(6,0)
тогда проблема не в этом (специально проверил токо что, нормально видит)
← →
Алексей (2004-09-02 11:12) [5]Самое интересное, что SQL Explorer минусы прекрасно показывает, при настройке алиаса черех ODBC.
Ну BDE тоже работает.
А в программе ни в какую....
← →
sniknik © (2004-09-02 11:14) [6]> А в программе ни в какую....
ну значит чегото в программе...
(могу прислать свою на ADO для проверки (500кб), если и в ней тоже самое то... ты не виноват ;о), виновата дельфя и тд.)
← →
Алексей (2004-09-02 11:23) [7]Давай. str_al_al@rambler.ru
← →
sniknik © (2004-09-02 11:34) [8]послал. будет та же фигня, пришли табличку возможно дело в ней.
← →
Алексей (2004-09-02 11:50) [9]Так таблица-то FOX`ова :-(
← →
sniknik © (2004-09-02 12:10) [10]> Так таблица-то FOX`ова :-(
ну так что? думаеш у меня драйвера под нее нету? ;о)))
← →
Алексей (2004-09-02 12:20) [11]Тады поставлю вопрос так:
Какая строка подключения должна быть для работы с фоксом черех джет 4?
В реестре не нашел ссылок на фокс :-(
(software\mikrosoft\jet\ ....)
← →
sniknik © (2004-09-02 12:26) [12]> Какая строка подключения должна быть для работы с фоксом черех джет 4?
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\DB;Extended Properties=dBase IV;Persist Security Info=False
но это для старого фокса (пока они еще не отличались сильно), новый сразу увидиш таблицы будут или просто не видны или не открыватся (ошибку давать будет).
> В реестре не нашел ссылок на фокс :-(
их с 3.5 нет, в нем еще было разделение, после убрали.
← →
Алексей (2004-09-02 16:28) [13]УРА!!!
Победа!!!
Но через АГРОММНУЮ ЖООООООООПУ :-(
Пришдось сделать так:select isnd, AllTrim(str(kol)) from nakl_d
where kol<0
Через ж..у, но работает.....
← →
sniknik © (2004-09-02 16:44) [14]через строку? ну так еше в первом своем посте говорил так поступить. (читал бы внимательнее давно бы уже радовался.. ;о)
в моей то то проге пробовал? как там?
← →
Алексей (2004-09-03 09:31) [15]Пробовал. Как ты иговорил - не сработало из-за того, что таблица сделана в более позднем ФОКСе
← →
sniknik © (2004-09-03 10:31) [16]> не сработало из-за того, что таблица сделана в более позднем ФОКСе
ну так там же можно любую строку настроить! интересно именно это с той же строкой подключения как у тебя но в моей программе. (глюк в программе или нет понять, если с той же строкой но в моей проге этого не будет...)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.125 c