Как поставить UIB?
Модератор: Модераторы
Как поставить UIB?
Добрый день!
Скачал UIB21, не могу поставить...
Выдает ошибку:
C Lazarus знаком плохо, только начинаю его использовать, но я подозреваю, что имеющийся у меня UIB21, надо как-то правильно по папкам разложить.
Имеющаяся структура папок в дистрибутиве такая:
Устанавливаю через "Пакет->открыть файл пакета(.lpk)", "c:\lazarus\UIB_\sourse\uiblaz.lpk", "Компиляция"
На этом месте стопуется все...
Lazarus v0.9.25beta
Windows Vista х32
Может кто подскажет, как правильно поставить?
Заранее благодарю...
Скачал UIB21, не могу поставить...
Выдает ошибку:
C Lazarus знаком плохо, только начинаю его использовать, но я подозреваю, что имеющийся у меня UIB21, надо как-то правильно по папкам разложить.
Имеющаяся структура папок в дистрибутиве такая:
Устанавливаю через "Пакет->открыть файл пакета(.lpk)", "c:\lazarus\UIB_\sourse\uiblaz.lpk", "Компиляция"
На этом месте стопуется все...
Lazarus v0.9.25beta
Windows Vista х32
Может кто подскажет, как правильно поставить?
Заранее благодарю...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
alexs писал(а):там глючок есть
идёт вызов функци с не однозначным трактованием типов параметра функции - поэтому fpc и ругается
проще всего - поправь исходник - используй явное приведение типа.
Понимаю, что с вызывом перегруженной функции "EncodeTimeStamp(Value, PISCTimeStamp(sqldata));" проблема.
А что вместо нее написать?
Если можно подробнее, не очень я еще разбираюсь в этом
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
Код: Выделить всё
SQL_TIMESTAMP : EncodeTimeStamp(integer(Value), PISCTimeStamp(sqldata)); я вот так написал =) вроде работает =)
to Attid
Там есть 3 описания этой процедуры:
Ты явно вызываешь вторую.
Компилятор то это съест, но будет ли это потом работать?
По идее надо точно идентифицировать тип первого параметра.
Т.е. если это TDateTime, то -- EncodeTimeStamp(DateTime(Value), PISCTimeStamp(sqldata));
если это Integer, то -- EncodeTimeStamp(integer(Value), PISCTimeStamp(sqldata)); // как ты и предлогаешь
если это Cardinal, то -- EncodeTimeStamp(cardinal(Value), PISCTimeStamp(sqldata));
По моему все эти типы определены в конечном счете как LongInt.
Тогда непонятно, почему надо было писать разные процедуры...
Короче, что-то я не догоняю
Там есть 3 описания этой процедуры:
Код: Выделить всё
procedure EncodeTimeStamp(const DateTime: TDateTime; v: PISCTimeStamp);
begin
v.timestamp_date := Round(int(DateTime)) + DateOffset;
v.timestamp_time := ISC_TIME(Round(Frac(DateTime) * TimeCoeff));
end;
procedure EncodeTimeStamp(const Date: Integer; v: PISCTimeStamp);
begin
v.timestamp_date := Date + DateOffset;
v.timestamp_time := 0;
end;
procedure EncodeTimeStamp(const Time: Cardinal; v: PISCTimeStamp);
begin
v.timestamp_date := DateOffset;
v.timestamp_time := Time;
end; Ты явно вызываешь вторую.
Компилятор то это съест, но будет ли это потом работать?
По идее надо точно идентифицировать тип первого параметра.
Т.е. если это TDateTime, то -- EncodeTimeStamp(DateTime(Value), PISCTimeStamp(sqldata));
если это Integer, то -- EncodeTimeStamp(integer(Value), PISCTimeStamp(sqldata)); // как ты и предлогаешь
если это Cardinal, то -- EncodeTimeStamp(cardinal(Value), PISCTimeStamp(sqldata));
По моему все эти типы определены в конечном счете как LongInt.
Тогда непонятно, почему надо было писать разные процедуры...
Короче, что-то я не догоняю
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
ну какбы я глянул на название процедуры
ну и подумал что пихать в SetAsInt64 что-то отличное от int как-бы не гламурно =) я бы не стал =)
Код: Выделить всё
procedure TSQLDA.SetAsInt64(const Index: Word; const Value: Int64);ну и подумал что пихать в SetAsInt64 что-то отличное от int как-бы не гламурно =) я бы не стал =)
Так выход то какой?
оставить --
Проблем потом в "птице2" не будет?
оставить --
Код: Выделить всё
SQL_TIMESTAMP : EncodeTimeStamp(integer(Value), PISCTimeStamp(sqldata)); Проблем потом в "птице2" не будет?
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
EvgIq писал(а):Проблем потом в "птице2" не будет?
вот где где а в птице точно не будет =)
ну если не веришь логике сравни как в свн версии исправленно
Добавлено спустя 49 секунд:
ЗЫ строка 4613
Спасибо!!!
