SQL zaqvka
20 отговора
459 прегледа
SQL zaqvka
Imam naprimer edna obiknovena zaqvka kato tazi:
select * from clienti
Tazi zaqvka primerno mi vra6ta 10 zapisa. Kak da napravq taka, 4e da mi pokaje samo parvite 4 zapisa, a drugite da ne gi pokazva. Izpolzvam Interbase ina4e v MySQL ima6e maj "limit", koeto re6ava6e tozi problem. Mersi.
select * from clienti
Tazi zaqvka primerno mi vra6ta 10 zapisa. Kak da napravq taka, 4e da mi pokaje samo parvite 4 zapisa, a drugite da ne gi pokazva. Izpolzvam Interbase ina4e v MySQL ima6e maj "limit", koeto re6ava6e tozi problem. Mersi.
Re: SQL zaqvka
select first 4 * from clienti
ама това работи на FireBird. Ти кой точно сървър ползваш?
ама това работи на FireBird. Ти кой точно сървър ползваш?
Re: SQL zaqvka
опитай със stored procedure
малко по дълго е но може да свърши работа
нещо такова
CREATE PROCEDURE SELECTEMPLOYEES (
MAXCOUNT INTEGER)
RETURNS (
FIRSTNAME VARCHAR(50))
AS
DECLARE VARIABLE CNT INTEGER;
begin
CNT=0;
for select FirstName from employees
into :FirstName
do
begin
if (CNT>=:MAXCOUNT) then
break;
suspend;
CNT=CNT+1;
end
end
и после избираш първите 4ри
select * from selectemployees(4)
този SQL обаче не се държи добре по отношение на order by (select * from selectemployees(4) order by firstname)
малко по дълго е но може да свърши работа
нещо такова
CREATE PROCEDURE SELECTEMPLOYEES (
MAXCOUNT INTEGER)
RETURNS (
FIRSTNAME VARCHAR(50))
AS
DECLARE VARIABLE CNT INTEGER;
begin
CNT=0;
for select FirstName from employees
into :FirstName
do
begin
if (CNT>=:MAXCOUNT) then
break;
suspend;
CNT=CNT+1;
end
end
и после избираш първите 4ри
select * from selectemployees(4)
този SQL обаче не се държи добре по отношение на order by (select * from selectemployees(4) order by firstname)
Re: SQL zaqvka
Той не поддържа такива неща. Или използвай по-нова версия (разбирай FireBird, щото InterBase си е платен вече) или направи някакъв трик със сторедпроцедурка, както ти показа x-man
Re: SQL zaqvka
не че има голямо значение...
но тази процедура връща един и същ резултат и с Exit и с Break (Firebird 1.0)
но тази процедура връща един и същ резултат и с Exit и с Break (Firebird 1.0)
Stranichen vapros
Bi li mi poiasnil prichinite, poradi koito si preminal ot MySQL na IB. V momenta izbiram kym koe da se orientiram i ste mi e interesno.
(Do kolkoto imash vreme za otgovor na takyv vypros)
(Do kolkoto imash vreme za otgovor na takyv vypros)
Re: SQL zaqvka
Нямам InterBase при мене, с FB съм и не мога да го проверя, ама ако не се лъжа IB има само Exit, но не и Break... А човека каза, че е с IB 6.0.2... Дано не греша ама май е така 
Re: SQL zaqvka
Опитах се да намеря нещо за Break в документацията на Interbase 6.0 (2AllBooks.pdf) обаче не се споменава нищо - споменава се само Exit
така че си прав
така че си прав
Re: Stranichen vapros
Vav firmata v koqto rabotq se izpolzva Interbase :). Ina4e vse pak Interbase si e Borlandski kakto i Delphi, koeto trqbva da te navejda na misalta, 4e e po-optimiziran za Delphi. No sega na predna liniq izliza Firebird-a.
Re: Stranichen vapros
Точно тази версия е ужасно бъгава - имам предвид 6.0 - та - може би 02 е по добре - обаче имам лоши спомени - заради които зарязах IB- то преди. Виж сега пак съм се захванал - и познах заради какво - именно заради FB - препоръчвам ти да го погледнеш сериозно.
А колкото до съвместимоста - не мисля, че някъде явно съм срещал коментари че едни или други компоненти работят по добре с IB от FB - нека другите да ме коригират ако знаят.
---
Е т'ва е живот!
А колкото до съвместимоста - не мисля, че някъде явно съм срещал коментари че едни или други компоненти работят по добре с IB от FB - нека другите да ме коригират ако знаят.
---
Е т'ва е живот!
Re: Stranichen vapros
Interbase няма специална оптимизация за работа с Delphi (каквото и да значи това
).
Ако държиш на Interbase, ползвай седмицата. В нея е добавена нова функционалност, отстранени са много бъгове и са добавени други естествено
Ако държиш на безплатното, ползвай Firebird 1.0. Това е опън сорса на IB6 с отстранени бъгове и добавена функционалност. Предстои релиз на FB1.5. Разработчиците му твърдят, че има пълна обратна съвместимост с IB6 и почти пълна с IB7. Това означава, че всички native компоненти за IB могат да се ползват и за FB. За FB2 обаче се очаква, че ще се появят значителни различия.
Най-лошия избор е IB6, защото на практика това е един изоставен, от Борланд проект (без пари не им е интересен
)
PS. Направи си усилието в българските форуми да пишеш на български

Ако държиш на Interbase, ползвай седмицата. В нея е добавена нова функционалност, отстранени са много бъгове и са добавени други естествено
Ако държиш на безплатното, ползвай Firebird 1.0. Това е опън сорса на IB6 с отстранени бъгове и добавена функционалност. Предстои релиз на FB1.5. Разработчиците му твърдят, че има пълна обратна съвместимост с IB6 и почти пълна с IB7. Това означава, че всички native компоненти за IB могат да се ползват и за FB. За FB2 обаче се очаква, че ще се появят значителни различия.
Най-лошия избор е IB6, защото на практика това е един изоставен, от Борланд проект (без пари не им е интересен
PS. Направи си усилието в българските форуми да пишеш на български
Редактирано от NDeu на
Не много страничен въпрос
Ползувам FB 1.5, но все не мога да намеря какви са допълнителните му възможности спрямо IB 6 /в смисъл поддържани функции и оператори като например - first N /. Ако някой знае линк ще съм много благодарен !
Re: Не много страничен въпрос
FB поддържа SQL-92 Standards - потърси ги в нета - проблема на тези които намерих е че са платени :(((((( - pdf-a беше 18$ май. Или поне това пише в сайта на FB.
---
Е т'ва е живот!
---
Е т'ва е живот!
Re: Не много страничен въпрос
Ами за новостите във FB трябва да си четеш ReleaseNotes-ите, защото все още няма завършена единна документация за него (чел съм едно файлче, ама май беше драфт и не мога да се сетя за адрес). Иначе за IB6 можеш да си ги дръпнеш от [линк]
По въпроса за бъговете в IB - 6.0.1 е отвратителен
, ама 6.0.2 е с една идея по-добре. Но наистина е аПсолютно безмислено да се ползва 6-така, след като има FB
.
Има някои неща, които не ми се вързват с понятието "обратно съвместим", но те са дреболии и се оправят лесно. Например сега се сещам за следната ситуация. Имаш следния SQL:
select p.id, p.amount, p.client_id, c.name from payments p inner join clients c on c.id = p.client_id where id = :ID
Това е напълно нормален RefreshSQL за TIBDataSet да речем. С IB6 си работи като пушка и ако си си писал програмата едно време за него, ще се изненадаш, че това на FB гърми с internal gds software consistency check (table PAYMENTS). или Ambiguous field name between table PAYMENTS and table CLIENTS. Обратно съвместим, ама не съвсем
Признавам, че горният SQL не е съвсем коректен, ама все пак на IB си върви, а под обратна съвместимост аз разбирам да не ми се налага да си прекомпилирам програмата като си сложа FireBird-а...
По въпроса за бъговете в IB - 6.0.1 е отвратителен
Има някои неща, които не ми се вързват с понятието "обратно съвместим", но те са дреболии и се оправят лесно. Например сега се сещам за следната ситуация. Имаш следния SQL:
select p.id, p.amount, p.client_id, c.name from payments p inner join clients c on c.id = p.client_id where id = :ID
Това е напълно нормален RefreshSQL за TIBDataSet да речем. С IB6 си работи като пушка и ако си си писал програмата едно време за него, ще се изненадаш, че това на FB гърми с internal gds software consistency check (table PAYMENTS). или Ambiguous field name between table PAYMENTS and table CLIENTS. Обратно съвместим, ама не съвсем
Признавам, че горният SQL не е съвсем коректен, ама все пак на IB си върви, а под обратна съвместимост аз разбирам да не ми се налага да си прекомпилирам програмата като си сложа FireBird-а...
Re: Не много страничен въпрос
Идейно 


Страхотен формат за хелпове


Дали да не предложим на чичко Бил да заменят chm-тата с gdb-та
Страхотен формат за хелпове
Дали да не предложим на чичко Бил да заменят chm-тата с gdb-та
Re: Не много страничен въпрос
Е, никой не обещава обратна съвместимост на бъговете
Странното е как шестицата се усеща условието за c.id ли се отнася или за p.id

Странното е как шестицата се усеща условието за c.id ли се отнася или за p.id
Re: Не много страничен въпрос
Очаквах някой да пусне удобен инструмент за навигиране, но до сега не съм видял
