Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.036 c
14-1095340762
}|{yk
2004-09-16 17:19
2004.10.03
Есть ли на форуме народ из Харьковской области?


1-1095424188
VasRog
2004-09-17 16:29
2004.10.03
ComboBox


14-1095385238
Думкин
2004-09-17 05:40
2004.10.03
С днем рождения! 17 сентября


4-1092748880
Vasya.ru
2004-08-17 17:21
2004.10.03
Программа через автозапуск не работает


3-1094605386
AleKo
2004-09-08 05:03
2004.10.03
DBGridEh вместо запятой точка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский