powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / eSQLEditor 5.16b
25 сообщений из 106, страница 1 из 5
eSQLEditor 5.16b
    #35709755
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://myinformix.narod.ru/

12.12.2008. Версия 5.16b.

* при удалении текущего активируется таб справа, а не слева.
* подсветка литералов с двойными кавычками (в редакторе sql).
* подсветка (желтеньким) текущей строки.
* в лог записываются только первые 80 символов sql запроса (меньше тормозит).
* в диалоге export добавлена browse (открывается приложение ассоциированное с расширением файла).
* добавил поддержку синтаксиса create [dba] procedure/function external.
* запрос выполняется в отдельном потоке, поэтому гуй не замирает и добавлена возможность прерывание выполняющегося запроса.
* кнопка connect/disconnect разделилась на две кнопки.
* одноименные бинд-переменные отображаются как один в диалоге запроса значений.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35709916
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
12.12.2008. Версия 5.16b.

Супер!

Журавлев Денис
* в лог записываются только первые 80 символов sql запроса (меньше тормозит).

А можно сделать, чтобы обрезание управлялось параметром в настройках?
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35709947
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой
А можно сделать, чтобы обрезание управлялось параметром в настройках?это не про общий лог, а про лог прямо на вкладке где редактируется запрос, там вообще не видно больше 50 символов.
В общем логе все целиком лежит, как было.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35709961
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Денис, успокоил :)
Уже смотрю!
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35710093
olleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо Денису.
Активно использую тулзу.
Пусть даже без возможности сортировки в закладке "Data" :)
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35710307
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
12.12.2008. Версия 5.16b.
* кнопка connect/disconnect разделилась на две кнопки.

Писал много слов - но потерял :(.
Пишу короче :) - если теперь в списке серверов выбрать другой сервер - и не приконнектиться, то через полчаса можно забыть, на каком ты сервере находишься... Предлагаю в заголовок окна вместе с именем пользователя выносить...
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35710763
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вау, круто!

Спасибо!
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35710995
Kozhina Lidia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис!!! Пять Баллов!!!
Почти весь наш отдел пользуется вашим инструментом.
Ждем продолжения, все таки: --It's only test. Many features are not implemented yet.

из последних пожеланий:Посмотрите, пожалуйста, может имеет смысл добавить:
1. Фильтр по владельцу, т.е. все таблицы/процедуры одного владельца (может отдельным окошечком рядом с фильтром по наименованию ?)
2. в закладке 'Dpn' добавить поле, по которому связаны таблицы (у нас есть справочники с двумя уникальными полями, причем у некоторых оба поля CHAR(N) разной длины) и соответственно в строку на создание констрейнта добавить поле, по которому связь
ALTER TABLE "aot".nsi_ved ADD CONSTRAINT (FOREIGN KEY
(code) REFERENCES "apr".nsi_res(поле) CONSTRAINT "aot".fk_ved_1);
3. закладка 'DDL' в строке на создание таблицы, если поле datetime имеет значение по умолчанию, то добавить размерность
CREATE TABLE n(time_create DATETIME YEAR to SECOND default Current YEAR to SECOND);
4. И уж совсем детское:) хотелось бы скрипты на печать выводить.

С уважением, Кожина Л.Н.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35711070
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kozhina Lidia
из последних пожеланий:Посмотрите, пожалуйста, может имеет смысл добавить:
1. Фильтр по владельцу, т.е. все таблицы/процедуры одного владельца (может отдельным окошечком рядом с фильтром по наименованию ?)Я бы рад, не могу придумать куда отдельное окошечко засунуть.


Kozhina Lidia
2. в закладке 'Dpn' добавить поле, по которому связаны таблицы (у нас есть справочники с двумя уникальными полями, причем у некоторых оба поля CHAR(N) разной длины) и соответственно в строку на создание констрейнта добавить поле, по которому связь
ALTER TABLE "aot".nsi_ved ADD CONSTRAINT (FOREIGN KEY
(code) REFERENCES "apr".nsi_res(поле) CONSTRAINT "aot".fk_ved_1);
не понимаю, пример краткий из двух таблиц покажите.

Kozhina Lidia
3. закладка 'DDL' в строке на создание таблицы, если поле datetime имеет значение по умолчанию, то добавить размерность
CREATE TABLE n(time_create DATETIME YEAR to SECOND default Current YEAR to SECOND);
это сделаю.

Kozhina Lidia 4. И уж совсем детское:) хотелось бы скрипты на печать выводить.Т.е. вам хочется печатать sql-и с подсвеченным синтаксисом? Я правильно понял?
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35711461
Kozhina Lidia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис, я имела ввиду вот что

таблица
CREATE TABLE "aspr".nsi_resource(
res_code CHAR(8) NOT NULL,
prod_code NCHAR(3) NOT NULL,
pole1 char(30)
);

CREATE UNIQUE INDEX "aspr".ix_nsi_resource2 ON "aspr".nsi_resource(res_code);
CREATE UNIQUE INDEX "aspr".ix_nsi_resource1 ON "aspr".nsi_resource(prod_code);
ALTER TABLE "aspr".nsi_resource ADD CONSTRAINT UNIQUE (prod_code) CONSTRAINT "aspr".un_nsi_res_pcode;
ALTER TABLE "aspr".nsi_resource ADD CONSTRAINT PRIMARY KEY
(res_code) CONSTRAINT "aspr".pk_nsires;
(почему так, никто не ответит, сложилось исторически)

ALTER TABLE "arezp".mb_mnt_doz ADD CONSTRAINT (FOREIGN KEY(prod_code) REFERENCES "aspr".nsi_resource (prod_code) CONSTRAINT "arezp".fk_mbdoz_prod)
ALTER TABLE "abspr".ps_nsi_res ADD CONSTRAINT (FOREIGN KEY(res_code) REFERENCES "aspr".nsi_resource (res_code) CONSTRAINT "abspr".fk_ps_nsi_res)

в скрипте явно указывать 2 поле (дело в том, что есть таблицы к которым 50 то одних то других привязано, чтобы не путаться) Хотя сейчас пишу, на самом деле кажется ерунду какую-то :)
А по поводу печати это наше общее пожелание, большие, и часто чужие процедуры хорошо в бумажном виде изучать:)
Преогромнейшее спасибо!
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721047
Guest_1712
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то у меня программа вылетает при попытке запустить на исполнение запрос, в случае, если коннект с сервером был потерян...
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721528
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest_1712Почему-то у меня программа вылетает при попытке запустить на исполнение запрос, в случае, если коннект с сервером был потерян...это не тестировал, наверно где-то я накосячил.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721697
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис, если не секрет, каков механизм реализации функции "отмена запроса"?
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721767
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денисдобавлена возможность прерывание выполняющегося запроса.Как?!? Я не нашел :(( Ощущаю себя идиотом...
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721779
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойДенис, если не секрет, каков механизм реализации функции "отмена запроса"?
Какой секрет. Это документированный механизм информикса.

Ликбез
Обычно процесс происходит так: мы вызываем из dll информикса функцию "выполнить запрос" и сидим ждем (висим) когда эта функция вернет нам управление. Но клиент информикса умеет в это время дергать из нас (из приложения) другую функцию (callback), с некоторой перидичностью, и в этот момент приложение может попросить клиента interrupt.

IDAC
В идаке это выглядит так:
ifxConnection обладает
свойством UseTimeOut если оно true, то будем дергать callback
свойством TimeOutInterval период в миллисекундах когда дергать
событием OnTimeOut здесь надо положить наш код

В idac есть Demo пример как этим пользоваться, он очень простой, но однопоточный в OnTimeOut вызывается Application.Processmessages в реальном приложении так делать можно, но лучше не надо, пользатели могут побить.

EsqlEditor
в дизайне TimeOutInterval = 100
После подключения к базе выполняем
Database.UseTimeOut := true; //надо делать каждый раз (после Open) похоже в idac баг, я про это писал недавно тут где-то.

Каждые 100 мс, тупо проверяем переменную FInterrupt если она true то вызываем InterruptSQL
Код: plaintext
1.
2.
3.
4.
5.
procedure TfmMain.DatabaseTimeOut(Status: TIfxTimeOutStatus);
begin
  if (Status in [tsTimeout]) and FInterrupt then
    Database.InterruptSQL;
end;

На время выполнения скрипта создается еще один поток, в котом скрипт из sql-ей (;) парсится и выполняются запросы, и в нем дергается проверка DatabaseTimeOut, потому что Database в этот момент "живет" там. Второй поток позволяет GUI не замирать не ждать возврата управления.

И в потоке гуя при нажатии на кнопочку выполняется

Код: plaintext
1.
2.
3.
procedure TfmMain.acInterruptSQLExecute(Sender: TObject);
begin
  FInterrupt := true;
end;
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721805
Kozhina Lidia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис, скажите, что кнопку "Interrapt" можно сделать видимой
в настройках панелей справа или вверху у поля со скриптом.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721814
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
Ликбез
клиент информикса умеет в это время дергать из нас (из приложения) другую функцию (callback), с некоторой перидичностью, и в этот момент приложение может попросить клиента interrupt.

Интересовало именно это - не приходилось разбираться с клиентом информикса так глубоко. Но за подробности всё равно спасибо - может ещё кому пригодиться, а может и мне - когда-нибудь позже :)
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721823
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kozhina LidiaДенис, скажите, что кнопку "Interrapt" можно сделать видимой
в настройках панелей справа или вверху у поля со скриптом.
Да, кнопка "Interrupt" по умолчанию не видна (т.е. видны те кнопки, которые были видны до этого, а новые надо вручную вытаскивать через customize).
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721900
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойИнтересовало именно это - не приходилось разбираться с клиентом информикса так глубоко. Но за подробности всё равно спасибо - может ещё кому пригодиться, а может и мне - когда-нибудь позже :)
Некоторое время я потратил на осознание того факта, что одновременно в одном потоке может "жить" только одно соединение с информиксом, и в то же время соединение может существовать только в одном потоке.

Т.о. есть поток гуя, и есть поток для выполнения. Необходимо соединение передавать туда сюда.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
поток гуя
  Connection.MakeDormant
поток выполнения
  Connection.MakeCurrent
  выполняем запрос
  Connection.MakeDormant
поток гуя
  Connection.MakeCurrent
  показываем результат, фетчим, ....

В терминах esql/c это звучит так:
EXEC SQL set connection 'con1' dormant;
EXEC SQL set connection 'con1'


гугельTherefore, when each thread has finished with it for the time being, the thread will
need to set the connection to dormant and then yield. Unless it does so,
all the other connections will run into -1802 errors (an error; I assume
-1802 is connection in use by another thread or some variant of that).

Programming a Thread-Safe ESQL/C Application
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721962
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати, Luxena дальнейшим развитием IDAC вроде не собирается заниматься. Денис, а у Вас IDAC с исходниками?
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35721997
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойДа, кстати, Luxena дальнейшим развитием IDAC вроде не собирается заниматься. Денис, а у Вас IDAC с исходниками?да, с исходниками. Но какая разница, я могу их читать. Но раздавать их, или их в виде компонентов я не могу.



ЗЫЖ Обращаюсь к читающему эти строки "Пожалуйста не пишите мне просьб прислать idac на "посмотреть" и про ids тоже не пишите, в ответ получите только нецензурную брань, "компенсация за труды" меня не интересует, я сказочно богат".
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35722689
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисАнатоЛойДа, кстати, Luxena дальнейшим развитием IDAC вроде не собирается заниматься. Денис, а у Вас IDAC с исходниками?да, с исходниками.

ЗЫЖ Обращаюсь к читающему эти строки "Пожалуйста не пишите мне просьб прислать idac на "посмотреть" и про ids тоже не пишите, в ответ получите только нецензурную брань, "компенсация за труды" меня не интересует, я сказочно богат".

Денис, извините, пожалуйста, если я спровоцировал :). Или это просто предусмотрительность?!

Ваше мнение, документация у них очень приличная - или приходиться часто "возиться" с исходниками?
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35722768
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойДенис, извините, пожалуйста, если я спровоцировал :). Или это просто предусмотрительность?!
Нет не ты, постянно просят и idac и последние версии информикса, один раз ДАЖЕ траффик потраченный на закачку дистрибутива свежего информикса предлагали оплатить.

АнатоЛойВаше мнение, документация у них очень приличная - или приходиться часто "возиться" с исходниками?у люксены ? Нормальная документация. В общем-то там все просто и все как обычно. Я иногда смотрю исходники, потому что мне нужны специфические вещи, для прикладных целей хватит документации.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35741654
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://myinformix.narod.ru/


30.12.2008. Версия 5.17b.

* Отображается имя сервера к которому подключен (user@server).
* при ошибке в запросе на не текущем табе нет исключения `cannot focus invisible window`.
* не дизаблились кнопки над гридом с результатом.
* В базах без транзакций, задизаблены кнопки Start/Rollback/Commit.
* Если соединения с сервером пропало (или сессия убита), не падаем.
* Сортировка кликом по колонке в data.
...
Рейтинг: 0 / 0
eSQLEditor 5.16b
    #35742045
olleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис

* Сортировка кликом по колонке в data.


Огромное спасибо за подарок. Как раз к новому году!
У коллеги родился сын. Хотели назвать Ескуледитором.
Мать не согласилась. Но назвали Денисом! :)
...
Рейтинг: 0 / 0
25 сообщений из 106, страница 1 из 5
Форумы / Informix [игнор отключен] [закрыт для гостей] / eSQLEditor 5.16b
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]