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

12.12.2008. Версия 5.16b.

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

Супер!

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

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

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

Спасибо!
...
Рейтинг: 0 / 0
12.12.2008, 14:30
    #35710995
Kozhina Lidia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Денис!!! Пять Баллов!!!
Почти весь наш отдел пользуется вашим инструментом.
Ждем продолжения, все таки: --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
12.12.2008, 14:43
    #35711070
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
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
12.12.2008, 16:05
    #35711461
Kozhina Lidia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Денис, я имела ввиду вот что

таблица
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
17.12.2008, 19:58
    #35721047
Guest_1712
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Почему-то у меня программа вылетает при попытке запустить на исполнение запрос, в случае, если коннект с сервером был потерян...
...
Рейтинг: 0 / 0
18.12.2008, 09:09
    #35721528
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Guest_1712Почему-то у меня программа вылетает при попытке запустить на исполнение запрос, в случае, если коннект с сервером был потерян...это не тестировал, наверно где-то я накосячил.
...
Рейтинг: 0 / 0
18.12.2008, 10:40
    #35721697
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Денис, если не секрет, каков механизм реализации функции "отмена запроса"?
...
Рейтинг: 0 / 0
18.12.2008, 11:12
    #35721767
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Журавлев Денисдобавлена возможность прерывание выполняющегося запроса.Как?!? Я не нашел :(( Ощущаю себя идиотом...
...
Рейтинг: 0 / 0
18.12.2008, 11:15
    #35721779
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
АнатоЛойДенис, если не секрет, каков механизм реализации функции "отмена запроса"?
Какой секрет. Это документированный механизм информикса.

Ликбез
Обычно процесс происходит так: мы вызываем из 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
18.12.2008, 11:26
    #35721805
Kozhina Lidia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Денис, скажите, что кнопку "Interrapt" можно сделать видимой
в настройках панелей справа или вверху у поля со скриптом.
...
Рейтинг: 0 / 0
18.12.2008, 11:29
    #35721814
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Журавлев Денис
Ликбез
клиент информикса умеет в это время дергать из нас (из приложения) другую функцию (callback), с некоторой перидичностью, и в этот момент приложение может попросить клиента interrupt.

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

Т.о. есть поток гуя, и есть поток для выполнения. Необходимо соединение передавать туда сюда.
Код: 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
18.12.2008, 12:15
    #35721962
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
Да, кстати, Luxena дальнейшим развитием IDAC вроде не собирается заниматься. Денис, а у Вас IDAC с исходниками?
...
Рейтинг: 0 / 0
18.12.2008, 12:25
    #35721997
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eSQLEditor 5.16b
АнатоЛойДа, кстати, Luxena дальнейшим развитием IDAC вроде не собирается заниматься. Денис, а у Вас IDAC с исходниками?да, с исходниками. Но какая разница, я могу их читать. Но раздавать их, или их в виде компонентов я не могу.



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

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

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

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

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


30.12.2008. Версия 5.17b.

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

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


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


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