Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

В чем разница между IBSQL и IBQuery?   Найти похожие ветки 

 
DiLLeR   (2002-12-23 13:59) [0]

Вопрос вот в чем .. кто-нить может обьяснить в чем разница между IBSQL и IBQuery? ... учитывая то что гоняется чистый SQL то есть все запросы делаю руками и выполняю ... никаких датасетов и т.п. Потому как документация что с дельфей идет оставляет желать много лучьшего ...


 
Prooksius ©   (2002-12-23 14:01) [1]

IBSQL - для выполнения скриптов (несколько SQL команд)
IBQuery - для 1 команды


 
Alexandr ©   (2002-12-23 14:03) [2]

IBSQL твой результирующий датасет не хранит, а IBQuery хранит для отображения в гриде.
Соответственно навигация, редактирование и пр.
так что если тебе ничего этого не надо, то юзай IBSQL.
По-моему так...


 
DiLLeR   (2002-12-23 14:05) [3]

Prooksius © ... а можно чуть поподробнее??? ... то есть если выполняеш один select, update, insert or delete то в принципе все равно что использовать???


 
DiLLeR   (2002-12-23 14:08) [4]

Alexandr © ... а с точки зрения перфоманса??? ... не проверяли???


 
Alexandr ©   (2002-12-23 14:09) [5]

читайте маны. Они рулез.

Use a TIBSQL object to execute an InterBase SQL statement with minimal overhead. TIBSQL has no standard interface to data-aware controls and is unidirectional.


Use TIBQuery to access one or more tables in a database using SQL statements. Use query components with remote InterBase database servers and with ODBC-compliant databases.

Query components are useful because they can

• Access more than one table at a time (called a “join” in SQL).
• Automatically access a subset of rows and columns in its underlying table(s), rather than always returning all rows and columns.

Note: TIBQuery is of particular importance to the development of scalable database applications. If there is any chance that an application built to run against local databases will be scaled to a remote SQL database server in the future, use TIBQuery components from the start to ensure easier scaling later.


а неправда более подробной не бывает :(


 
Alexandr ©   (2002-12-23 14:10) [6]

перфо чего?
Ты уж определись, для чего тебе помпонент.
Для возвращения датасета? тогда IBDataSet или IBQuery
а если просто delete, update выполнить, ХП запустить, скриптик програнать тогда IBSQL, который уж точно не будет медленнее работать


 
Prooksius ©   (2002-12-23 14:11) [7]

2 DiLLeR (23.12.02 14:05)
В принципе да. Но только с select в IBSQL ты не увидишь результат запроса.
При Update, Delete, Insert - IMHO без разницы.


 
DiLLeR   (2002-12-23 14:32) [8]

Alexandr ©
Мне компонент нужен только чтобы исплнять SQL select, update, insert, delete и т.п. запросы могут быть очень навороченные ... щас этап проктирования ... и Я вот думаю что лучьше использовтаь как компонент доступа ... Данные из компонента получаю ручкми никаких DataSet пока не предвидится и думаю и не будет ... пока из той доки что на англицком склоняюсь, что использовать стоит IBQuery. В принципе Я его раньше использовал без пробьлем просто стало интересно в чем различие ...

Prooksius © ... почему не увижу результата select??? ... Вижу Я пробовал ... проблем особых не увидел ...


 
Alexandr ©   (2002-12-23 14:45) [9]

IBSQL не является наследником DataSet и этим в принципе все сказано.
Отсюда исключительная легкость, при малой функциональности. Впрочем и не нужной, в тех случаях где он применяется.


 
Prooksius ©   (2002-12-23 14:47) [10]

2 DiLLeR (23.12.02 14:32)

> почему не увижу результата select??? ...
> Вижу Я пробовал ... проблем особых не увидел ...

А через что ты видел? Что, к IBSQL можно DBGrid подключить?


> Данные из компонента получаю ручкми никаких DataSet пока
> не предвидится и думаю и не будет

Интересно, почему? Чем так плох DataSet?


 
DiLLeR   (2002-12-23 14:56) [11]

Alexandr © ... то есть если Я правиль понял там где гоняется чистый SQL притом возможно очень сложные запросы - IBSQL - самое место? То есть скажу чуть больше где нужно исполнять запросы характера insert, update, delete, alter и полуать данные из select ... Я правильно понял??? ...

Prooksius © ... нет нельзя DBGrid ... а зачем он Мне??? ... когда нужно гибко управлять данными DBGrid не подходит ... ну и потом не DBGrid"ом единым, Я предпочитаю получать данные в StringGrid - намного более гибкое решение ... правда там где оно надо ессно. Я не говорю что DataSet плох .. просто в проекте он не планируется использовтаься.


 
Alexandr ©   (2002-12-23 14:58) [12]

да, тогда тебе IBSQL будет самое то.


 
Delirium^.Tremens ©   (2002-12-23 15:02) [13]


> где гоняется чистый SQL

А в DataSet что же грязный можно гонять?

> полуать данные из select
IBSQL - не имеет интерфейса для DataAware controls и является unidirectional.
Короче, IBSQL нужен для выполнения разовых команд, скриптов и т.п., но не для получения данных.


 
Alexandr ©   (2002-12-23 15:04) [14]

можно его для получения данных использовать.
Не спорьте.
Но не dataset.
Т.е. без навигации. Ты же сам сказал unidirectional.

Удивительно, каждый хочет высказаться на тему, в которой очень слабо разбирается :)


 
Prooksius ©   (2002-12-23 15:05) [15]

2 DiLLeR (23.12.02 14:56)
Да действительно IBSQL возвращает курсор. Ты прав.
DataSet - нет, а вот курсор - да.


 
Alexandr ©   (2002-12-23 15:08) [16]

ну и вот.
А ему большего и ненадо.
А то вы ему щас насоветуете...

Вот пример:
есть таблица 100 записей по 1КБ
TIBQuery если вытянет ее всю, станет занимать 100КБ, а TIBSQL всегда 1КБ. Т.к. в нем нет буфера записей.
А если dataset и не нужет, то нафига его держать в TIBQuery.
Уж незнаю как еще популярнее объяснить


 
DiLLeR   (2002-12-23 15:15) [17]

Alexandr ©
Вы Мне еще одну вещь не подскажете ... нормально ли в IBSQL организована работа с BLOB ... в IBQuery юзал а тут еще не приходилось .. смотрел BatchInput и BatchOutput если Я правильно понимаю - это оно???


 
Delirium^.Tremens ©   (2002-12-23 15:24) [18]

2Alexandr ©>

> Удивительно, каждый хочет высказаться на тему, в которой
> очень слабо разбирается :)

Товарищ умник, TIBSQL действительно вернет ему некие данные в виде структуры XSQLDA, с которой еще нужно уметь обращаться. А судя по последнему вопросу, вы еще долго будете жалеть, что не наставили его на путь TIBQuery :-) :-) :-)


 
DiLLeR   (2002-12-23 15:30) [19]

Delirium^.Tremens © ... А в чем Вы видите отличия и преимущества??? ...


 
Delirium^.Tremens ©   (2002-12-23 15:33) [20]

Преимеущества я вижу там, где дается возможность быстро собрать приложение и получить за него деньги. Грубо, но это правда. К тому же на IBQuery все прекрасно будет работать.


 
DiLLeR   (2002-12-23 15:37) [21]

Delirium^.Tremens © ... Будет работать ... это Я знаю .. Я IBQuery юзал кучу раз и особых проблем не испытывал хотя и там не без глюков ... но ... если есть другой инструмент - то почему бы его тоже не знать ... позможэно он более мощный для конкретной задачи ... потому как в IBQuery - куча ненужной Мне функциональности ...

Кстати быстро создать приложение не всегда - хорошо создать приложения .. и разговор здесь сейчас идет именно о последнем ... иначе Я б его не начал ...


 
Delirium^.Tremens ©   (2002-12-23 15:46) [22]


> Кстати быстро создать приложение не всегда - хорошо создать
> приложения .. и разговор здесь сейчас идет именно о последнем
> ... иначе Я б его не начал ...

Об этом даже разговора нет. Кто же заплатит за "плохо". Но вот когда через год-другой возмущенные пользователи будут бегать с топорами и требовать изменений, а про портрошение XSQLDA давно забыто, вот тогда мы и поговорим что такое "хорошо" и что такое "плохо". Проще надо быть.


 
DiLLeR   (2002-12-23 15:54) [23]

Delirium^.Tremens ... что Вы понимаете под потрошением XSQLDA??? ... Я что - то не совсем понял .. если Вы имеете в виду получение оттуда данных и поренаправление их куда уже нужно будет ... то с этим проблем не встречал даже через год - другой.

ДБшные компоненты - проше ... но Я бы не сказал что лучьше .. гибкости у них нету ...


 
Delirium^.Tremens ©   (2002-12-23 16:06) [24]


> ... то с этим проблем не встречал даже через год - другой

О чем тогда спор, если это уже вошло в норму. Просто, лично я, предпочитаю использовать TIBSQL для разовых команд. Для получения же данных - то что прямо для этого предназначено. И если я поменяю движок, мне будет не очень больно, т.к. у меня есть надежда, что название методов и их результат будут (в основном) такими же.


 
DiLLeR   (2002-12-23 16:18) [25]

Delirium^.Tremens ... Я до этого работал только с IBQuery ... потому щас стало интересно что такое IBSQL .. с ним до этого не работал ... вот и интресуюсь ...


 
Delirium^.Tremens ©   (2002-12-23 16:32) [26]


> с этим проблем не встречал даже через год - другой

А как же насчет этого?


 
DiLLeR   (2002-12-23 16:34) [27]

На счет чего конкретно???

IBQuery??? ... Я не говорил что он плохой ... просто почитавши хелп дельфевый по IBSQL ... Мне показалось что возможно последний - будет лучьше подходить под нынешние задачи ...


 
Delirium^.Tremens ©   (2002-12-23 16:37) [28]


> Я что - то не совсем понял .. если Вы имеете в виду получение
> оттуда данных и поренаправление их куда уже нужно будет
> ... то с этим проблем не встречал даже через год - другой.

Мы что, здесь не о TIBSQL говорим?


 
DiLLeR   (2002-12-23 16:47) [29]

Delirium^.Tremens ... нет это Я говорил про IBQuery ... Я из него тоже через XSQLDA данные получаю ... в подавляющем большинстве задач ДБшные компоненты неприемлемы ... Сорри Я наверное не совсем ясно изьяснился ...


 
DiLLeR   (2002-12-24 12:51) [30]

Так что ... никто ничего не может добавить по данному вопросу???


 
Alexandr ©   (2002-12-24 13:56) [31]

а чего добавлять?
Уже все прозрачно и сказано по 3 раза


 
DiLLeR   (2002-12-24 14:01) [32]

Alexandr © ... Просто может кто - то еще выскажет свое Мнение по поводу? ... Я имею в виду о преимуществах и недостатках ... Я уже в принципе понял возможности обоих компонент ... может просто есть ньанся ... например работа с блоб полями в TIBSQL.

Всем принявшим участие в обсуждении бооольшое спасибо и Вам Alexandr © - лично.



Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.019 c
1-62595
ALXSAM
2003-01-08 16:10
2003.01.20
Как создать компонент в ходе выполнения программы


1-62585
Студент
2003-01-08 01:23
2003.01.20
Text


7-62875
123000
2002-11-08 12:08
2003.01.20
HDD


3-62376
Bakch
2002-12-25 08:58
2003.01.20
Crystal Report


14-62840
Seriy
2003-01-03 08:20
2003.01.20
Удаление всех файлов из каталога кроме одного, например index.dat