Ну уж если залез по самые уши, то мы тут не причем. Я тебе лишь показал,
что UTF8 нормально сортирует (так, как ты хочешь увидеть).
Во первых надо же кому-то тестить. Во вторых я щас смотрю как работает
UTF8 и мне оно совсем не нравится что-то. Мне с NONE намного удобнее.
Ну что это например
Можешь сделать тест, показывающий тормоза блобов, из-за которых ты
на длинные varchar'ы перешёл ?
Могу, если надо, только мне ж интересно исключительно с .NET Provider
работать это раз, во вторых что ты от этих тестов получить хочешь?
Убедить меня что на разницу можно забить? :-)
В
Согласен. Правда, думаю, что это не баг, а недоделаная фича. Каким-то
образом движок решил, что надо выделить один байт, а потом пошла
проверка на тему влезут ли туда еще три. На том и обламывается. В
подтверждение - попробуй вместо _UTF8 _UNICODE_FSS написать - будет
работать (но
Ок, сделаю вечером или завтра.
sasha работает с 2.0, причём задолго до релиза
Токо ж я по TCP всё равно хожу, т.к. по XNET через PInvoke провайдер
медленнее работает.
PS Тебе тест многопоточный или однопоточный надо? У нас то ведь реально
веб-приложение было и мы его стресс-тулом грузили, то есть это
эквивалент
есть такое правило, в бизнесе - делай то, что можешь продать.
Например - объектно-ориентированные расширения в РСУБД - это круто.
Но почти никто не пользуется. Соответственно рожать такие
расширения себе дороже.
Похоже, с поддежкой .Net 2.0 то же самое - это мало кому надо.
Да многие под него
Это нужно ограниченному числу приложений. Случай, когда приложение
работает не с кучей блобов сразу а с 1-м я считаю более распространённым.
Я не прав ?
У меня как раз кучи. Может быть один, а может пара сотен да помножить на
многопользовательский режим...
Ого он подрос ... если мне память не изменяет 1.1 runtime весил 20
метров кажется? Конечно я в шоке от установки BDS - что нужно поставить
весь .Net и недостаточно рантайма
Та сколько там того нета. 1-й весит 23 метра + 10 метров сервиспак,
второй - 22 метра, третий - 50. У меня в телефоне
http://clevercomponents.com/products/dbcomparer/dbcomparer.asp
все отлично перекодирует в UTF8
Спасибо, пробую. Но возникла проблема с переносом полей, например не
компиллируется:
CREATE DOMAIN GIGANTIC_TEXT AS VARCHAR(32700) CHARACTER SET UTF8;
В связи с этим у меня вопрос, который я так
Спасибо.
Теперь у меня последний вопрос я надеюсь. Если у меня в базе поля NONE,
но подключаюсь я к базе с UNICODE_FSS, то какие у меня могут быть с этим
проблемы?
Пока что мы видим только отличие в том что при объявлении символов мы
фактически указываем количество байт.
UPPER работает
UPPER работает правильно - я проверил
в общем случае - не должно, недостаточно тестировал :) проблемы должны
начатся, когда будешь использовать collate.
А как можно использовать COLLATE с юникодом?
теор. если поля UTF8, то ORDER BY должен работать правильно
У меня UNICODE_FSS и 'a' идёт
В смысле как найти?
Смотришь текст запроса, который такую фигню вытворяет - и исправляешь его.
Так не могу найти запрос такой. Оно начинает выжирать память только при
каких-то условиях, а при каких - х.з. Прийдётся наверное логи вести...
Что Firebird .Net - недоделанные.
Например?
Есть такой вопрос.
База FB2, кодировка и все поля CHARACTER SET NONE.
Работаю через .NET провайдер (т.е. внутрях программы всё в юникоде).
Нужна поддержка всего двух языков (немецкий и английский).
Одна из функций программы - считывать строки из XML и записывать их в
базу, а при последующих
Кодировка подключения: NONE или UTF-8 или UNICODE_FSS или другое?
В оригинале была NONE и все данные занесены через неё. Щас пытаемся
через UNICODE_FSS и UTF8 их читать.
Значит, в базе не юникод лежит. Или юникод не той системы :-)
Ох я совсем запутался, трындец. Смотри какая ситуация.
Пересоздай базу в UTF-8 и будет тебе счастье. Правда что там с
дотнетом и UTF-8 - точно не знаю. PHP и Java с ним дружат, а про
дотнет я вам расскажу недельки через 3-4 :)
Эх как всё просото у вас :-))) Я бы рад пересоздать, только вот не знаю
сколько времени всё это займёт... А нам надо
Родил вот вчера одну процедурку. Ничего необычного, в фор селекте по
мастеру апдейтится один атрибут этого мастера и другой атрибут детали
его детали. Where по PK мастера, сегменты которого являются первыми
сегментами FK деталь нижняя - деталь средняя. Прогнал и пошёл спатеньки.
Сегодня
Саша, могу только посоветовать убить себя об стену.
Самоубийство - грех :
PS. Пожалуй я последний, кто боится нагружать сервер работой, которую
вполне можно выполнить на клиенте :) Точнее в моём IBProvider-е :))
К чему вы это, я не понял. Я к базе экспертом цеплялся и блейз-топом
К тому, что его знает что сервер там решит делать, когда его
попросят вернуть данные в кодовой странице, отличной от оригинальной.
Тем более, если попросить NONE вернуть как UTF8.
Так Дос Сантос фернандос там попотел над этим в 2.0. И оно щас работает
у меня с UNICODE_FSS, а утром упало
На каплях пота поскользнулось...
:-)
Ну а если серьёзно почему нельзя избавиться от Terminated abnormally ?
Ведь когда исключение происходит должно же быть какое-то вразумительное
сообщение об ошибке. Неужто нету его?
Есть. Access Violation at address .
Да уж. Кто там преимущества Managed code хотел узнать - вот они. Там
такого нету.
видишь ли, когда 80% народа, которые его ставят в Visual
Studio, говорят что не работает, я склонен считать
что виноват автор драйвера, чем что эти 80% - идиоты.
Не путайте. То скорее всего про DDEX-провайдеры. Их надо ставить ручками
путём редактирования конфигурационных файлов. При этом
Убей себя об стену. У бесплатного сервере бесплатный enlarge your
трудовой день!
Бесплатно enlarge your трудовой день у меня связанно с MS SQL :-)))
Вот с ним точно убиться об стену можно, потому как пожаловаться некому :-)
А можно ли считать нормальной с точки зрения сервера ситуацию когда база
весит ~400 мегабайт, а какой-то запрос заставляет сервер создать с
десяток файлов сортировки в темпе, которые в общем весят 12 гигабайт?
обычно это ненормально в отношении того, кто такой запрос писал.
например
select * from table
order by/group by
без индексов, с PLAN SORT.
из-за * и получается большой размер sort file.
В том смысле, что когда в запросе plan sort, надо
выбирать только те столбцы, которые нужны.
И не втыкать
вернее 60 раз :-)
Вполне. Декартовое произведение большой таблички с самой собой несколько
раз, плюс сверху сортировка.
Хм... Как это всё найти только...
Привет!
Накатил недавно FB 2.0.1 и сегодня утром ужаснулся. Открываю лог, а там
такое:
P15183671 (Server) Mon Feb 05 19:00:08 2007
Database: E:\DATABASE\RSSPORTAL.FDB
internal gds software consistency check (cannot start thread)
P15183671 (Client) Mon Feb 05
Неправду сказал. На FB 2.0 тоже есть проблемки. Количество страниц
уменьшил для обоих баз на 50 000. Однако только что просткользнуло:
P15183671 (Server) Tue Feb 06 12:19:43 2007
Database: E:\WWW\RSSPORTALIGMCOMMON\DATABASE\RSSPORTALIGM.FDB
unable to allocate memory from
Сколько виртуальной памяти у fbserver ? Сколько потоков ?
Сколько коннектов ?
Виртуальной памяти ~569 МБб скачет +/1 2 мб
Потоков 14
Подключений в данный момент 2 (в принципе со стороны клиента их
ограничивает пул 10 или 20 штуками)
rdwtsn32 -i
.pdb весьма желательно.
Сделал
А чем тут ватсон поможет? Сервер говорит, что ему винды не дают памяти.
В самом крайнем случае он может от этого свалиться. Но почему нет памяти
процессу - на этот вопрос ватсон не ответит.
А какие вобще варианты могут быть почему винда памяти не даёт, если
свободная память есть ?
Виртуальной памяти ~569 МБб скачет +/1 2 мб
Хотел сказать +/- 1 Мб
rdwtsn32 -i
.pdb весьма желательно.
Странно. Только что была запись в логе, fb, а у ватсона пусто. fb
запущен как сервис без гвардейца. Единственное что не pdb. Щас скачаю
2.0.1 pdb таки поставлю...
Странно. Только что была запись в логе, fb, а у ватсона пусто. fb
запущен как сервис без гвардейца. Единственное что не pdb. Щас скачаю
2.0.1 pdb таки поставлю...
Точнее только щас дошли до меня слова ДЕ о том что ватсон не поможет.
Сервер то у меня не упал. Чё делать? Виртуалки всего 500
Какая запись ?
P15183671 (Server) Tue Feb 06 14:08:04 2007
Database: E:\WWW\RSSPORTALIGMCOMMON\DATABASE\RSSPORTALIGM.FDB
unable to allocate memory from operating system
В момент записи в лог тоже было 500 ? Настрой perfmon и попиши его
логи день-другой...
Ну
Ну я сам момент падения не видил. Я через пару минут смотрел... П
Вернее не падения, а ошибки. Язык заплетается. Сервер щас не падает.
Что-то не нашел, ответил кто-то или нет.
А что мешает создать новый домен с нужным collate,
и переключить все поля на него?
IBExpert что-то похожее мутит.
А я так не пробовал. У меня полей много. На то я домен и делал чтобы все
сразу их колбасить.
Влад собери ему отладочный вариант, а то он так ничего не найдёт ценного.
Думаешь оно в лог будет имя файла и номер строки писать ?
Если да - то можно. Но - тормозное оно будет... Нужно глянуть, можно ли
только диагностику менеджера памяти подключить в релизном билде...
Ты если
Ты если сможешь сделать сборку тестовую, то пиши, а то у меня этот
проект уже не в той стадии чтобы я мог в любое время сервак застопорить
и тесты гонять. А дома у меня канал инета слабый и не позволит так
сервер пригрузить.
Эээ, всё, не надо пока нового билда. Мы кардинально режим работы
Ой, а может имне кто подскажет раз такой оффтопик.
Вчера поставил опенсусе 10.2 дома. Всё поставилось без вопросов, но есть
одна проблемка. Я не могу разрешение экрана выставить. У меня моник TFT
20 дюймов, разрешение его родное - 1600 на 1200. А мне суся ставит 1280
на 1024.
Загружаю я
Спасибо, буду разбираться :-)
Привет.
Не знаю известна ли проблема, поэтому расскажу. У оптимизатора проблемы
с оптимизацией запросов с джойнами к (подзапросам или представлениям с
внешними соединениями внутри). И представления и Derived tables
оптимизируются одинаково, поэтому приведу пример для вторых:
1) Есть
А как работает
SELECT TOB.*
FROM CONVERT_IDS_TO_ROWS('54319218, 54319223') R
LEFT JOIN (
SELECT O.Id, O.ObjectId, O.TagName, T.Permanent, T.MatchesCount
FROM TaggedObjects O
LEFT JOIN Tags T ON T.Id = O.TagId
WHERE O.ObjectName = 'FeedItem'
) TOB ON
Жуть :)
Ты понимаешь, дело в том что в оригинале у меня проблемы с INNER JOIN
были. Щас там версия с LEFT JOIN крутится, поэтому я тебе ситуацию
описать в данный момент не могу. Но когда там был INNER, то мне эксперт
показывал невесёлую статиcтику с перебором парочки таблиц, по которым
Леонид Агафонов wrote:
Добрый день!
Есть запрос
select * from
test_table c
where
c.cost = 0
and
c.parent is null
FB2 берёт индекс по parent
селективность индекса по полю cost
0,45242726628202945
селективность индекса по полю PARENT
0,0149521531511709327
Я когда-то с
Ой, не, глупостьи неправду написал. Там не COALESCE(c.parent, -c.Id)
было, а результат подзапроса к другой таблице. Тут такое не прокатит к
сожалению :-(
теперь пишем в триггере то же самое.
чей контекст у rdb$db_key? триггера? или table?
Однозначно таблицы, т.к. для триггера было бы NEW. или OLD.
Я поставил FB2 на XP Professional 64bit edition.
Ставил под своим пользователем, пользователь входит в группу
Administrators.
Теперь не могу подключиться к серверу никак. Более того если я
останавливаю в службах сервис гвардейца, то fbserver зависает в
состоянии Stopping.
Пробовал
Как приложение сервер работает ? В логе есть что-нить ?
Та я вот перегрузился, поотключал антивирусы, фаерволы, поставил его как
приложение и всё заработало. Включил антивирус и фаервол - тоже работает.
В логах сервера пусто.
Как приложение у меня 2.0 работает без проблем по любому протоколу.
Ага, вариант. Спасибо!
Привет!
А почему когда я пишу в триггере
SELECT T.RDB$DB_KEY FROM MyTable T WHERE ... INTO :EXISTING_DB_KEY;
то у меня всё компиллируется, а если так
SELECT RDB$DB_KEY FROM MyTable T WHERE ... INTO :EXISTING_DB_KEY;
то уже не компиллируется:
Column does not belong to referenced table.
Не скомпилируется, кстати, если и вообще алиаса нет у таблицы, типа
SELECT RDB$DB_KEY FROM MyTable INTO :EXISTING_DB_KEY;
Та я знаю. А раньше вроде работало...
А потому, что обычным смертным знать по этот ключик не положено, и для
них его нету.
Так его ж IBExpert активно показывает в списке полей. Мне чё-то кажется
что мало кто о нём не знает.
http://www.youtube.com/watch?v=dWHguHT6TIoeurl=
Да, но нужно перед этим выполнить команду
SET I_HAVE_LATIN_LETTERS_ONLY=SURE
Та ладно. У вы же когда пытаетесь сделать FK на поле с данными, то вам
же не запрещают ключ создавать даже если там неправильные значения есть.
В процессе построения индекса всё выясняется. Так и тут. Есть
Хм, у меня вот например такое есть:
LocalId INTEGER
InstanceId SMALLINT
VersionId SMALLINT
GlobalId BIGINT
и я ними пользуюсь чисто чтобы типы данных не перепутать. Хоть это и не
правильно с точки зрения дейта, зато удобно. Никаких проблем с
пониманием структуры таблиц я здесь не вижу.
здесь у меня никаких претензий, окромя GlobalId, если я правильно понял
его смысл. А может и не понял.
Это GlobalId = LocalId + InstanceId * 4294967296 + VersionId * ...
Что с ним не так? Тем более в эпоху 64-разрядных процессоров... У меня
все таблицы от малых до больших с этими полями для
Саша, извини меня, но ты еще
1. не знал что с доменами в других субд вообще никак
Не спорю. Однако нам от этого не лучше.
2. сразу начал страдать фигней с именами объектов в двойных кавычках.
Я этим уже года 2 страдаю и буду страдать и ничуть об этом не жалею.
Причём тут это вобще?
нет, никакого отношения. сугубо практически. Просто домены чаще всего
используют именно для такой хрени, вроде
ShortString varchar(100), MiddleString varchar(200), BigString
varchar(1024) и т.п.
Есть у меня и такие. Я наивно предполагал что с помощью ALTED DOMAIN
можно будет сразу у всех
Скажем так. Я использую домены как типы данных для подобных по смыслу
полей. И я знаю что они для другого немного задумывались, но об этом
можно много рассуждать. Я так понимаю что вы смыс в домене
представляете так:
CustomerId INT
OrderId INT
CustomerId = OrderId - Exception
да. и это не
При том. что я могу написать ShortString, shortstring, sHortsTring,
а ты - не можешь :-)
А мне кка раз и надо чтобы не мог ;-)
Это я исправил в 2.1. Как-нибудь дойдут руки и до коллейтов.
Отлично! А VARCHAR на BLOB TEXT поменять тоже можно будет?
Гммм... хороший вопрос...
У меня ещё вопрос хороший есть. Существует множество кодировок, которые
можно привести друг к другу. Например:
WIN1251 - KOI8R
xxx - NONE
xxx - UTF8
NONE - реальная
да и вобще если у меня одни английские буквы, то почти все кодировки
можно менять.
Что-то из
Через системные таблицы.
Чё-то я никак не могу найти в какой это таблице. В TYPES нету. Где ещё
эти домены могут лежать?
как нелюбитель доменов, замечу, что написать varchar(100)
ничуть не сложнее чем ShortVarchar, причем замечу, в двойных
кавычках, и соблюдая регистр букв.
Я когда начинал так делать то честно говоря не знал что с доменами у нас
всё так печально.
RDB$FIELDS
И правда, кто бы мог подумать... Спасибо!
Пользуясь случаем поздравляю всех с наступающим Рождеством!
Также имеется вопрос: у меня есть домен
... VARCHAR(100) CHARACTER SET WIN1251 COLLATE WIN1251
мне надо получить
... VARCHAR(100) CHARACTER SET WIN1251 COLLATE PXW_CYRL
команда
ALTER DOMAIN ShortVarchar
TYPE VARCHAR(100) CHARACTER
Речь идет о решении задачи в общем случае. Если мне скажут алгоритм, по
которому любой запрос указанного вида можно свести к join-у буду очень рад!
Кхм...
SELECT ...
JOIN (SELECT ...)
Переделывая на новую версию: удаляю старые PK с одним полем ID,
создаю новые PK с двумя полями ID и IDBASE. Но как теперь сделать
FK?
Что-то я не понял, а какие тут проблемы с FK ?
Вобще-то лично мне составные FK не нравятся по некоторым соображениям. Я
все таблицы делаю по такому вот шаблону:
CREATE TABLE _MyTable (
Id GlobalId NOT NULL PRIMARY KEY /* GlobalId =
BIGINT NOT NULL */,
LocalId LocalId /* LocalId = INTEGER NOT NULL */,
InstanceId
Та это всё ерунда. Если делать, то надо ООП тулить.
Например интерфейсы для таблиц:
CREATE INTERFACE IParent
(
Id INTEGER NOT NULL PRIMARY KEY,
Parent INTEGER REFERENCEC(Id)
)
А потом что-то типа
1) CREATE TABLE Catalog : IParent;
2) CREATE PROCEDURE GetHierarchyIParent
(
В трекер можно вносить, отслеживать и голосовать за
не только баги
А если серьёзно, насколько трудоёмким лично ты видишь перевод сервера на
объектно-ориентированные рельсы? Я имею ввиду:
1) Создание интерфейсов таблиц и процедур ( методов по нашему ;-) )
2) Поддержка наследования
Попробуй подумать об этом с другой стороны. Зачем создавать новый ОО
язык, когда вокруг полно хороших старых ? Значительно эффективнее, как по
мне, заставить их работать на нас. И java\.net\etc в сервере один из возможных
путей. Вопрос только в том, как их интегрировать наилучшим
А кто и каким образом будет закрывать этот курсор?
Да, немного. А ты про embedded SQL ? :)
Да, слышал лет 10 назад этим ещё пользовались :-)
Насколько я понимаю, LINQ - это постановка задачи наоборот - берём программу
на 'нормальном' языке (C#, C++ etc) и позволяем работать с данными, но без
датасетов,
а с конструкциями этого
Это называется TClientDataset (c) 1997
Та... Это ж токо часть. А языковых конструкций типа этих:
http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx
небыло ещё.
Именно что напоминает. Оно предназначено для 'кухарок', с отсутвующими
мозгами и
неспособных, да и не желающих
И как ты думаешь, откуда они идею взяли? Аль сами придумали? :)
Если вы на джаву намекаете, то может и оттудова, но там же это не на
много раньше появилось, в версии 1.5 насколько я знаю, которая вышла
когда NET 2.0 был же в бэтах.
В любом случае вещь классная. Надо бы только уточнения
О, как раз случай когда динамическая ссылка на курсор помогла бы :-)
может было б уместно сделать так SELECT A to(into) :A както логичней что
вообще в стандарте по этому поводу не противоречит.
Вопрос теоретический: а с каких дел вобще в стандарте
INSERT INTO (A, B, C) VALUES (:A, :B, :C)
но
UPDATE A = :A, B = :B, C = :C
Единственное что для синтаксиса
Фсё, фигня - см. http://www.energyup.ru/index.html. Нет ну неужели есть люди
которые на это разводятся?! ;-);-);-)
Гггг. А у нас есть на некоторых шиномонтажных мастерских вывески типа
заправка колёс азотом :-)) Я так понимаю раз они не поленились такие
вывески делать, то лохов
пусть бы гелий в салон (автомобиля или самолета) закачивали...
Тем что азот заправили, чтоб сразу было слышно с кем имеешь дело :-)
Есть вопрос по FB 2.0. А почему у нас такое предствление:
CREATE VIEW PinFeedDefinitions(
Id,
Type,
LifeTime,
TypeName)
AS
SELECT
Id,
Type,
LifeTime,
(SELECT Name FROM FeedTypes WHERE Id=C.Type)
FROM FeedDefinitions C WHERE Type=4
нельзя скомпиллировать так:
CREATE
Привет! Я сразу извиняюсь - осилить ветку Баг с конвертацией даты в ФБ
2.0 в поисках ответа не смог.
Задача: есть поле TIMESTAMP, есть временной интервал в минутах INT. Надо
из времени вычесть интервал.
Хотел было написать что-то типа
SELECT
CURRENT_TIMESTAMP
- (CURRENT_DATE -
Блин, смотрю и недоумеваю - у меня окончательно телепатор испортился? Надо по
гарантии отремонтировать...
Все обсуждают, а я сути вопроса не понял.
По заданию почему-то в упор кажется, что интервал уже есть из есть временной
интервал в минутах INT.
Ну так значит его нужно просто вычесть!
SELECT
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP - CAST(:M AS INTEGER) * 1. / 1440,
CURRENT_TIMESTAMP - CAST(:M1 AS DOUBLE PRECISION) / 1440
FROM RDB$DATABASE;
Супер, то что надо. Токо а почему с 1.0 не работает, а вот с тремя уже
кое-как (хоть и не всегда правильно). Оно что,
А почему без UDF? В fbudf есть для этого стандартная UDF addminute.
На самом деле можно и с UDF, просто интересно знать как без них.
Можно и более экзотические версии для View и прочих объектов придумать, которые
тоже красиво будут выглядеть, и тоже (вот блин засада-то) не компилироваться.
Я вам могу сказать что для тех же DERIVET TABLES это прокатывает аж
бегом. Очень удобно я вас скажу.
Вобще синтаксис такого плана
Кстате-кстате-кстате. Фигню сморозил имхо. Время-то ведь можно
интерпретировать как интервал. Такшта не вижу глубоких концептуальных
причин ни для вычитания оного из таймштампа, ни для прибавления. Ни даже
для умножения и деления с зачислением результата в тип интервал или его
имитатор.
Если коннектиться клиентом первого (WISQL), то всё как в первом, нормально.
Я такими тулами в базу не хожу :-) Да и первый диалект уже не помню
когда использовал последний раз. Года 4 назад, а то и 5...
Если Экспертом, с указанием диалекта коннекта - то
пока оба операнда деления на 1e01
FOR EXECUTE STATEMENT :SQL INTO...
Вопервых наш execute statement не понимет параметры.
Вовторых всё-таки с курсорами проверку правильности запроса на этапе
компилляции можно сделать.
В третьих скомпиллированные запросы порождают зависимости, что тоже в
общем-то хорошо.
Потому что обычные языки программирования не имеют ничего общего с СУБД, все
они более низкого уровня.
В СУБД и конкретно SQL ты пишешь пожелание серверу, ЧТО ты хочешь получить, но не КАК
ты хочешь получить, вот это как сервер за тебя решает.
Хотя многие конструкции уже начинают скатываться
Параметры можно влепить по значению, что я и показал.
У нас тут товарищи уже один крупный проект завалили. Делали так - всё
работало. Залили на немецкий сервер, проверит не успели и на презентации
всё рухнуло. Начали выяснять почему - оказывается у немцев формат даты
другой и даты из
Меня нагнули работать с MS SQL, я тут злюсь, матюкаюсь, провожу аналогии
с FB и кое-какие мысли появляются.
1) Не знаю с какого бодуна писатели стандарта придумывали синтаксис
использования курсоров типа такого:
DECLARE CUR CURSOR ...
OPEN CUR;
WHILE (1 = 1) DO
BEGIN
IF (ROW_COUNT =
CREATE PROCEDURE (SOME_ID INTEGER)
AS
DECLARE CURSOR CUR;
BEGIN
IF (SOME_ID IS NULL)
CUR = CURSOR FOR SELECT * FROM MY_TABLE;
ELSE // IF (SOME_ID IS NOT NULL)
CUR = CURSOR FOR SELECT * FROM MY_TABLE WHERE ID = :SOME_ID;
ВСЁ ТОТ ЖЕ КОД, НО В ЕДИНСТВЕННОМ ЭКЗЕМПЛЯРЕ
END
хотел
Чем это отличается от FOR SELECT?
Это может быть особенно полезно в купе с 2).
Фтопку feature request.
CREATE PROCEDURE (SOME_ID INTEGER)
AS BEGIN
FOR SELECT *
FROM MY_TABLE
WHERE ((:SOME_ID IS NULL) OR (ID = :SOME_ID))
INTO ...
DO
/*ВСЁ ТОТ ЖЕ КОД, НО В ЕДИНСТВЕННОМ ЭКЗЕМПЛЯРЕ*/
END
END
Этот код говорит о том что вам не доводилось
Без комментариев, ибо со стандартом в этом плане не знаком, но имею
серьёзные сумления, что в MS реализован именно стандарт, это не в их
обычае вообще-то.
Та у них очень похоже на реализацию Влада, только с наворотами типа:
1) Курсоры локальные/глобальные
2)
1) Разве у нас курсорыне однонаправленные?
Хотел сказать двунаправленные. У нас же нет возможности фетчить ничего
кроме следующей записи. С чего бы это им быть двунаправленными?
Избегай кусоров в MSSQL как огня - это самый большой тормоз этой СУБД.
Та я уже знаю, но без них то никак. Там многое через одно место. Лучше я
промолчу - злой я на них сильно...
Затаив дыхание и закрывшись руками от подзатыльника: а нафиг тогда они
нужны? :)
Например я с ихней помошьюю сравнивал данные. У меня есть такой объект
как поиск новости. У поиска есть такие атрибуты как поисковая строка и
диапазоны дат публикации.
Но в некоторых случаях поиск может
Результаты 501 - 600 из 802 matches
Mail list logo