Topic: Release Notes
fareader
User Junior BoarderPosts: 15
Karma: 0
Release Notes
Posted: 2005/05/24 07:27
А что собственно было исправлено? У меня, например, не получается нормально передать параметр типа Float - это исправили?
Diman
Admin AdminPosts: 1495
Karma: 19
RE: Release Notes
Posted: 2005/05/24 07:41
Привет ! quote:А что собственно было исправлено? Полный список изменений находится в $(ADHOME)History.txt. quote:не получается нормально передать параметр типа Float Можно поподробнее ? 1) С какой БД работаешь (имя, версия) ? 2) Что значит "не получается нормально" ? Возникает ошибка ? Данные не правильно передаются в БД ? 3) Пример кода, приводящего к проблеме ? Удачи, Дмитрий
fareader
User Junior BoarderPosts: 15
Karma: 0
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
Diman
Admin AdminPosts: 1495
Karma: 19
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. Если возможно, то пошли мне свою программу или приведи больший фрагмент своего кода. А еще структуру таблицы, куда идет вставка. Удачи, Дмитрий
fareader
User Junior BoarderPosts: 15
Karma: 0
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'; То все Ок
fareader
User Junior BoarderPosts: 15
Karma: 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, ' ' )
Diman
Admin AdminPosts: 1495
Karma: 19
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 исходниках, стэк вызова подозрительные значения переменных ?
fareader
User Junior BoarderPosts: 15
Karma: 0
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
Diman
Admin AdminPosts: 1495
Karma: 19
RE: Release Notes
Posted: 2005/05/24 11:42
Похоже что-то изменяет управляющее слово FPU. Обнаружить это место крайне сложно на расстоянии ... Я могу предположить что это происходит в ODBC. Предложений два: 1) Попробуй 1.0.2. Может быть чудо произойдет. 2) Будь добр, сообщи мне твою версию ODBC, я сравню со своей и поищи в MSDN что-нибудь на эту тему ... 3) Если не лень, то пройдись по коду по шагам (особо не заходя во внутрь процедур)и отслеживай значение Get8087CW. Как только изменится, то там **может быть** собака и зарыта ...
fareader
User Junior BoarderPosts: 15
Karma: 0
RE: Release Notes
Posted: 2005/05/25 08:36
1. Если у меня уже установлена v 1.0.1, то как мне ставить v 1.0.2 ? 2. Версия ODBC (если я правильно нашел) - 3.520.6526.0 В любом случае - спасибо за помощь И отдельное спасибо за компоненты