Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: Release Notes
[1 2 3 |Next ]
Release Notes
Posted: 2005/05/24 07:27
 
А что собственно было исправлено? У меня, например, не получается нормально передать параметр типа Float - это исправили?
RE: Release Notes
Posted: 2005/05/24 07:41
 
Привет !

quote:А что собственно было исправлено?
Полный список изменений находится в $(ADHOME)History.txt.

quote:не получается нормально передать параметр типа Float
Можно поподробнее ?
1) С какой БД работаешь (имя, версия) ?
2) Что значит "не получается нормально" ? Возникает ошибка ? Данные не правильно передаются в БД ?
3) Пример кода, приводящего к проблеме ?

Удачи,
Дмитрий
RE: Release Notes
Posted: 2005/05/24 07:57
 
Сорри, за неполный вопрос.
1. БД - MS SQL 2000
2. Есть запрос на Insert в компоненте TADQuery, параметрами передаются значения полей, один из параметров должен быть AsFloat, вот код:

Ins_Nak.ParamByName('Sum_Bn').AsFloat:=0;

при его исполнении вываливается

Invalid floating poit operation,

выбрасывает сюда:

procedure TADParam.SetAsFloat(const AValue:
Double);

если копнуть глубже, то здесь:

procedure TADParam.SetAsFloats(AIndex: Integer; const AValue: Double);
begin
FDataType := ftFloat;
Values[AIndex] := AValue;
end;

значение AIndex= -1
RE: Release Notes
Posted: 2005/05/24 08:36
 
Привет !

quote:Ins_Nak.ParamByName('Sum_Bn').AsFloat:=0;
при его исполнении вываливается
Invalid floating poit operation
Совершенно безобидный код.

quote:значение AIndex= -1
Все в порядке. В SetAsVariant обрабатывается -1.

Если возможно, то пошли мне свою программу или приведи
больший фрагмент своего кода. А еще структуру таблицы,
куда идет вставка.

Удачи,
Дмитрий
RE: Release Notes
Posted: 2005/05/24 08:45
 
вот структура таблицы:

CREATE TABLE [DH15789] (
[IDDOC] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16019] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15790] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15791] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15792] [datetime] NOT NULL ,
[SP15793] [numeric](9, 5) NOT NULL ,
[SP15794] [char] (13) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16018] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15796] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15797] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15798] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15804] [char] (13) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15806] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16387] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15807] [char] (13) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15808] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15815] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16020] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16066] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16146] [numeric](1, 0) NOT NULL ,
[SP16167] [char] (5) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16168] [char] (5) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16573] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP16576] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[SP15823] [numeric](13, 3) NOT NULL ,
[SP15824] [numeric](11, 3) NOT NULL ,
[SP15825] [numeric](12, 3) NOT NULL ,
[SP15826] [numeric](12, 3) NOT NULL ,
[SP15827] [numeric](12, 3) NOT NULL ,
[SP1855] [text] COLLATE Cyrillic_General_CI_AS NULL

А что программа? Да там присылать нечего Вот код:

Ins_Nak.Close;
Ins_Nak.ParamByName('IDDOC').AsString:=NextId36(Max_Id_Doc);
Ins_Nak.ParamByName('kod_gr').AsString:=Searche_Gr.FieldByName('id').AsString;
Ins_Nak.ParamByName('kod_pl').AsString:=Searche_Pl_Podat.FieldByName('id').AsString;
Ins_Nak.ParamByName('date_nak').AsString:='2005-05-24 00:00:00.000';
Ins_Nak.ParamByName('kod_dog').AsString:=Searche_Pl_Podat.FieldByName('SP1772').AsString;
Ins_Nak.ParamByName('Type_Sale').AsString:=Searche_Pl_Podat.FieldByName('SP146').AsString;
Ins_Nak.ParamByName('Type_NDS').AsString:=Searche_Pl_Podat.FieldByName('SP15993').AsString;
Ins_Nak.ParamByName('SP15798').AsString:=' 2 ';
Ins_Nak.ParamByName('Id_Price').AsString:=Searche_Gr.FieldByName('SP15487').AsString;
Ins_Nak.ParamByName('Num_Yar').AsString:=' 0 ';


Ins_Nak.ParamByName('Num_Smena').AsString:=' 1 ';

Ins_Nak.ParamByName('Sam').AsInteger:=1;
Здесь ошибка - Ins_Nak.ParamByName('Sum_Bn').AsFloat:=0;

Ins_Nak.ExecSQL;

Но, если я сделаю так:

Ins_Nak.ParamByName('Sum_Bn').AsString:='0';

То все Ок
RE: Release Notes
Posted: 2005/05/24 08:46
 
Да, чуть не забыл - запрос на вставку:

insert into DH15789 (
IDDOC,
SP16019,
SP15790,
SP15791,
SP15792,
SP15793,
SP15794,
SP16018,
SP15796,
SP15797,
SP15798,
SP15804,
SP15806,
SP16387,
SP15807,
SP15808,
SP15815,
SP16020,
SP16066,
SP16146,
SP16167,
SP16168,
SP16573,
SP16576,
SP15823,
SP15824,
SP15825,
SP15826,
SP15827,
SP1855)
values(
:IDDOC,
:kod_gr,
:kod_pl,
'0',
:date_nak,
'0',
:kod_dog,
'0',
:Type_Sale,
:Type_NDS,
P15798,
'0',
:Id_Price,
:Num_Yar,
'0',
' 31 ',
' 1 ',
'0',
:Num_Smena,
am,
' : ',
' : ',
'0',
'0',
'0',
'0',
um_Bn,
Sum_Money,
:NDS,
' '
)
RE: Release Notes
Posted: 2005/05/24 10:41
 
Хмм ... у меня все работает. Ладно, дальше:
1) Версия AnyDAC ? Размер файла adADPhysODBCBase ?
2) Версия Delphi ?
3) Измени опции проекта:
Compiler -> Optimization = False
Compiler -> Use Debug DCUs = True
Теперь "Build All" и "Run". Можешь сказать что-либо дополнительно, как то точное место
в VCL исходниках, стэк вызова подозрительные значения переменных ?
RE: Release Notes
Posted: 2005/05/24 11:06
 
версия - v 1.0.1
Delphi 7
размер файла adADPhysODBCBase - 76512 от 08.05.2005

псоле изменения настроек проекта ошибка стала вываливаться в модуле Variants здесь:
procedure _VarFromReal; // var V: Variant; const Value: Real
RE: Release Notes
Posted: 2005/05/24 11:42
 
Похоже что-то изменяет управляющее слово FPU. Обнаружить это место крайне сложно на расстоянии ... Я могу предположить что это происходит в ODBC. Предложений два:
1) Попробуй 1.0.2. Может быть чудо произойдет.
2) Будь добр, сообщи мне твою версию ODBC, я сравню со своей и поищи в MSDN что-нибудь на эту тему ...
3) Если не лень, то пройдись по коду по шагам (особо не заходя во внутрь процедур)и отслеживай значение Get8087CW. Как только изменится, то там **может быть** собака и зарыта ...
RE: Release Notes
Posted: 2005/05/25 08:36
 
1. Если у меня уже установлена v 1.0.1, то как мне ставить v 1.0.2 ?
2. Версия ODBC (если я правильно нашел) - 3.520.6526.0

В любом случае - спасибо за помощь
И отдельное спасибо за компоненты
[1 2 3 |Next ]