SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » смотрю книгу, вижу (OO API)
смотрю книгу, вижу [сообщение #299] Wed, 10 August 2022 15:34 Переход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
поднимите мне веки. ©

дошли руки до OO API.
смотрю firebird.pas

с первого раза не въехал: "интерфейсы" на самом деле не interface(IInterface) ?
Re: смотрю книгу, вижу [сообщение #300 является ответом на сообщение #299] Wed, 10 August 2022 15:38 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
Интерфейс - понятие гораздо более широкое, чего его конкретная реализация в Delphi.
И он не обязан следовать COM.
Re: смотрю книгу, вижу [сообщение #301 является ответом на сообщение #300] Wed, 10 August 2022 15:41 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
теперь я понимаю, почему возмущался DS.
Re: смотрю книгу, вижу [сообщение #302 является ответом на сообщение #301] Wed, 10 August 2022 15:42 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
Ему разве нужен повод ? Wink
Re: смотрю книгу, вижу [сообщение #303 является ответом на сообщение #302] Wed, 10 August 2022 15:52 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
ладно, от лирики перейдём к практике.
если я вот такую декларацию класса
  IVersioned = class
    vTable: VersionedVTable;
    const VERSION = 1;
  end;
заменю на следующую
  IVersioned = class
    vTable: VersionedVTable;
    VERSION: Integer;
  end;
на скорость с горы не повлияет?
ибо константные поля класса поддерживаются в Delphi начиная с XE.
Re: смотрю книгу, вижу [сообщение #304 является ответом на сообщение #303] Wed, 10 August 2022 16:16 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
Так делать неправильно. Правильно будет вынести константу за класс, например так
type
  IVersioned = class
    vTable: VersionedVTable;
  end;

const 
  IVersioned_VERSION = 1;
Другой вариант - добавить генератор в CLOOP для старой версии паскаля, коотрый всё это сгенерит в нужном виде.
Re: смотрю книгу, вижу [сообщение #305 является ответом на сообщение #304] Wed, 10 August 2022 16:29 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad
Так делать неправильно. Правильно будет вынести константу за класс,
т.е. это не поле класса (во внутренней структуре класса физически места не занимает) ?

hvlad
Другой вариант - добавить генератор в CLOOP для старой версии паскаля, коотрый всё это сгенерит в нужном виде.
вот вы, дяденька, такие слова говорите, а я ведь не настоящий сварщик... ©
насколько это затратно?
Re: смотрю книгу, вижу [сообщение #307 является ответом на сообщение #305] Wed, 10 August 2022 21:04 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
МП писал(а) Wed, 10 August 2022 16:29
hvlad
Так делать неправильно. Правильно будет вынести константу за класс,
т.е. это не поле класса (во внутренней структуре класса физически места не занимает) ?
Да, именно так

МП
hvlad
Другой вариант - добавить генератор в CLOOP для старой версии паскаля, коотрый всё это сгенерит в нужном виде.
вот вы, дяденька, такие слова говорите, а я ведь не настоящий сварщик... ©
насколько это затратно?
Не rocket science Wink
https://github.com/FirebirdSQL/firebird/tree/master/extern/c loop
Можно начать с "class PascalGenerator" в src/cloop/Generator.h и src/cloop/Generator.cpp.
Re: смотрю книгу, вижу [сообщение #309 является ответом на сообщение #307] Thu, 11 August 2022 12:00 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad
МП
hvlad
Так делать неправильно. Правильно будет вынести константу за класс,
т.е. это не поле класса (во внутренней структуре класса физически места не занимает) ?
Да, именно так
и с типизированными константами класса также обстоит?
  IStatus = class(IDisposable)
    const STATE_WARNINGS = Cardinal($1);
    const STATE_ERRORS = Cardinal($2);
    const RESULT_ERROR = Integer(-1);
    const RESULT_OK = Integer(0);
    ...
  end;
hvlad
МП
hvlad
Другой вариант - добавить генератор в CLOOP для старой версии паскаля, коотрый всё это сгенерит в нужном виде.
вот вы, дяденька, такие слова говорите, а я ведь не настоящий сварщик... ©
насколько это затратно?
Не rocket science Wink
https://github.com/FirebirdSQL/firebird/tree/master/extern/c loop
Можно начать с "class PascalGenerator" в src/cloop/Generator.h и src/cloop/Generator.cpp.
шутку юмора оценил.
слишком дохера перепаивать ©
Re: смотрю книгу, вижу [сообщение #310 является ответом на сообщение #309] Thu, 11 August 2022 13:49 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
МП писал(а) Thu, 11 August 2022 12:00
и с типизированными константами класса также обстоит?
С любыми

МП
шутку юмора оценил.
слишком дохера перепаивать ©
Бананів немає (ц)
Re: смотрю книгу, вижу [сообщение #312 является ответом на сообщение #310] Thu, 11 August 2022 17:57 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad
МП
и с типизированными константами класса также обстоит?
С любыми
Ок.
знач буду перепиливать константы.
Re: смотрю книгу, вижу [сообщение #313 является ответом на сообщение #312] Thu, 11 August 2022 20:07 Переход к предыдущему сообщениюПереход к следующему сообщению
DarkMaster в настоящее время не в онлайне  DarkMaster
Сообщений: 35
Зарегистрирован: August 2022
Member
Ты решил свой переписанный IBX вывести на новые рельсы?
Re: смотрю книгу, вижу [сообщение #314 является ответом на сообщение #313] Fri, 12 August 2022 09:30 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
DarkMaster, всё переписывать необязательно, но если хочется некоторых новых фич из 4.0, придётся частично использовать новый API.
Речь именно о 4.0, так как в 3.0 новое и старое API не сильно отличались по возможностям.

МП, задача не такая уж невыполнимая. Тот же IBExpert написанный на Delphi 5, частично использует OO API.
Re: смотрю книгу, вижу [сообщение #317 является ответом на сообщение #314] Fri, 12 August 2022 14:39 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
после титанического механического Ctrl-X, Ctrl-V и т.д. оказалось, что все эти константы именно в этом модуле нахер не нужны.
за исключением const STATE_ERRORS = Cardinal($2);

библиотеку собрал (в черновом варианте), будем щупать.

зы: мнение об архитектуре классов вслух высказывать пока не буду.
Re: смотрю книгу, вижу [сообщение #318 является ответом на сообщение #313] Fri, 12 August 2022 14:44 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
DarkMaster
Ты решил свой переписанный IBX вывести на новые рельсы?
в нашем IBX сейчас мало чего осталось от оригинального.
а вот как будет с новым API, сказать пока не могу.

Поглядим.
Послушаем.
Пощупаем.
Понюхаем.
Вы отоприте гараж-то!.. ©

Re: смотрю книгу, вижу [сообщение #319 является ответом на сообщение #318] Fri, 12 August 2022 17:15 Переход к предыдущему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
> зы: мнение об архитектуре классов вслух высказывать пока не буду.

На самом деле, если не пытаться его расширить или зафигачить для других языков, в том числе старых Delphi, оно вполне себе приятное.
То есть пока не лезешь внутрь, не видишь всей этой мудрённой обвязки с ним можно работать.
Предыдущая тема: Создать бд из embedded
Следующая тема: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома
Переход к форуму:
  


Текущее время: Thu Nov 21 22:40:13 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00890 секунд