Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить значение поля? [D7, FireBird]


Страницы:   1 2

ККВ ©   (2006-10-03 14:25:00) 

Здравствуйте.
Использую IBQuery для вставки записи. Текст: insert into table (name) values ('values') returning id. Вопрос в следующем. Как получить это самое возвращаемое значение? IBQuery.FieldByName('id').AsInteger ругается. Говорит нет такого поля id.
Заранее спасибо.


ККВ   (2006-10-04 14:47:00) [1]

Всем спасибо. Пришлось использовать процеду. Тема закрыта


Сало   (2006-10-04 13:46:00) [2]


> А то развели демагогию. Вместо того, чтобы просто, с обоснованием,
>  сказать, если не согласны, что "Фибы самые медленные".

Ага, автор Фибов такое будет говорить...


Johnmen   (2006-10-04 13:41:00) [3]

Всё понятно.
Оба прикалываются, делают вид, что не поняли сути. А м.б. и не поняли...
А Лоа ещё и хамит.
Суть же проста, как первый трактор: Что быстрее? И всё!И не надо там ничего ковырять, делать умное лицо, отвлекаться на частности.
А то развели демагогию. Вместо того, чтобы просто, с обоснованием, сказать, если не согласны, что "Фибы самые медленные".


Сало   (2006-10-04 13:33:00) [4]

Канэшна

Я бы добавил приблизительно такой комментарий.

Скажем так... Фактические результаты (то бишь цифирки) может быть и
правильные... Вряд ли бы автор стал их придумывать.  :)  Но вот
интерпретация этих результатов излишне обобщена. Глядя в код можно
сказать за счет чего возникает разница скоростей  IBSQL  и FIBQuery. Она
возникает за счет употребления метода FieldByName  огромное количество
раз.  В FIBPlus этот метод несколько побыстрей чем в других компонентах.
Т.е. если бы автор теста докопался бы до этой причины, и сделали вывод
именно про метод  FieldByName думаю возражений ни у кого не возникло бы.
Автор  же сделал выводы более общие, которые мягко говоря не всегда
верны. Хотя бы потому что если делать доступ через Fields[xxx]   то
разница будет в пределах погрешности изменений, а метод FieldByName это
в общем-то ленивый и в любом случае низкоскоростной вариант, который не
рекомендуется использовать в критичных по скорости местах... вне
зависимости от того что используешь, фибплюс или ибх или еще что. Ну и
сравнивать FIBQuery с  IBQuery действительно нельзя. В первом случае при
фетче заполняется всего один "буфер записи" причем не фибплюсами а
непосредственно клиентской библиотекой. Во втором случае же случае кроме
того результат фетча дополнительно копируется в еще и буфер компонента
IBQuery... т.е. фактически сравниваем несравнимое.

Ну и еще один вывод из вышесказанного... Характеристики железа, сервера,
базы данных... все это не имеет никакого значения для результатов ЭТОГО
теста. Имеет значение только исходный код теста... который в отличие от
несущественных параметров не опубликован в открытую, а лишь прилагается
отдельным файлом.

ЗЫ. Прошу не счесть это за антирекламу фибплюс


Вот что сказал разработчик Яффила Олег Лоа

Гм, автор тестировал FETECH на клиента. При этом обработки никакой не было. Ну так пусть он засунет себе компонеты в жопу, ибо если будет такая задача и будут проблемы с производительностью, то любой нормальный проектировщик выберет решение написать старницу когда с использованием функций API.


Johnmen   (2006-10-04 13:28:00) [5]


> Ну не надо эту хрень постить еще тут


На основании каких фактов утверждается, что "хрень"?


> Бузз сам поиздевался над ее автором на гмейне.


А конструктивное он что-нибудь сказал? Или только издевался?


Сало   (2006-10-04 13:21:00) [6]


> http://www.delphiplus.org/articles/tests/fibplus_ibx&dbexpress.
> html

Ну не надо эту хрень постить еще тут, Бузз сам поиздевался над ее автором на гмейне.
Вообще- юзай API, но не напрямую, а через простые обертки - таких много, например UIB


VALUA   (2006-10-04 13:16:00) [7]

Сделать хранимую процедуру для вставки новой записи , хранимая процедура возвращает последнее значение генератора , в таблице поле назовем KOD -
ZN_KOD := IBStoredProc.ParamByName('KOD') .


Виталий Панасенко   (2006-10-04 12:29:00) [8]

Хостинг предоставлен Devrace. На счет АПИ - тоже можно пользоваться. Весь ? - зачем ? Удобно ? не очень... Да и вопрос был О КОМПОНЕНТАХ доступа...Хотя, совсем другой был ? :-)))


PEAKTOP   (2006-10-04 11:27:00) [9]


> - не совсем соответсвует действительности

http://www.delphiplus.orgпренадлежит (или финансируется, не помню точно) компании, занимающиеся производством FIBPlus. Поэтому я бы не стал столь доверчиво относиться к статистике на этом сайте. Понятно, что только идиот будет хаять тот продукт, который продает.
Кстати, в той статистике все приведенные данные абсолютная правда. Сам тестировал, правда в немножко других условиях и на реальной базе, но имел приблизительно похожие результаты.
Только вот автор(ы) почему-то забыл включить в сравнительный анализ компоненты IBObjects, а также Interbase API (коими пользуются все PHP-кодеры), интересно, почему ?


Виталий Панасенко   (2006-10-04 09:05:00) [10]

На счет
> 2) если в лом самому возиться и не интересно, то возьми
> FIBPlus. В принципе, неплохие компоненты доступа, хотя не
> самые быстрые, зато если начинаешь с нуля, не надо париться.
>  все под рукой.

- не совсем соответсвует действительности
http://www.delphiplus.org/articles/tests/fibplus_ibx&dbexpress.html


PEAKTOP   (2006-10-03 18:39:00) [11]


> Надо в IBX

Не получиться. IBX навороты FireBird v2.0 не поддерживают. А фигня вся в том,  что надо малость подправить разбор IBQuery.Params :TParams, которые зашиты в DB.PAS. Менять что-либо в исходниках VCL не рекомендуют даже сами Борланды.
Я не сказал, что не решаемо в принципе. Месяц назад сам нае...ся с конструкцией EXECUTE BLOCK, правда у меня своя библиотека компонент доступа, основанная на исходниках IBX, но подправляемая уже давно, так что изменена уже до неузнаваемости.
Так что варианта два
1) бери исходники IBX и правь.
2) если в лом самому возиться и не интересно, то возьми FIBPlus. В принципе, неплохие компоненты доступа, хотя не самые быстрые, зато если начинаешь с нуля, не надо париться. все под рукой.


Desdechado   (2006-10-03 17:44:00) [12]

> Надо в IBX
есть 2 куба досок, нужно построить 2-этажный кирпичный дом


ККВ   (2006-10-03 16:10:00) [13]

> [21] Виталий Панасенко   (03.10.06 15:50)
> FIBPlus это поддерживают

Надо в IBX


ККВ   (2006-10-03 16:09:00) [14]

> [23] ККВ   (03.10.06 16:09)
> > [22] ANB ©   (03.10.06 16:00)
> > Надо результат загонять в оут параметр и доставать потом
>
> > из параметров. Во всяком случае - так в оракле. Сомневаюсь,
>
> > что в ФБ по другому.
>
> В ФБ так не пройдет.

так можно только в процедурах.


ККВ   (2006-10-03 16:09:00) [15]

> [22] ANB ©   (03.10.06 16:00)
> Надо результат загонять в оут параметр и доставать потом
> из параметров. Во всяком случае - так в оракле. Сомневаюсь,
> что в ФБ по другому.

В ФБ так не пройдет.


ANB   (2006-10-03 16:00:00) [16]

Надо результат загонять в оут параметр и доставать потом из параметров. Во всяком случае - так в оракле. Сомневаюсь, что в ФБ по другому.


Виталий Панасенко   (2006-10-03 15:50:00) [17]

FIBPlus это поддерживают


ККВ   (2006-10-03 15:33:00) [18]

> [19] Johnmen ©   (03.10.06 15:27)
>
> > unknown ©   (03.10.06 15:21) [17]
> > returning в fb2 используется в insert запросах.
>
>
> Возможно. Новая фишка. Только я не знаю, что у автора 2.0
> Да и ты тоже...:)

Забыл указать. Каюсь))


Johnmen   (2006-10-03 15:27:00) [19]


> unknown ©   (03.10.06 15:21) [17]
> returning в fb2 используется в insert запросах.


Возможно. Новая фишка. Только я не знаю, что у автора 2.0 Да и ты тоже...:)


ККВ   (2006-10-03 15:21:00) [20]

> [15] unknown ©   (03.10.06 15:15)
> Уже было обсуждение о неподдержке TIBQuery новых фишек.
> TIBSQL нормально возвращает по FieldByName.

Попробую через TIBSQL, хотя хотелось бы через Query...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо