Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / javascript интерпретатор / 25 сообщений из 72, страница 1 из 3
30.05.2009, 22:31
    #36017381
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
заточенный для работы с firebird как клиентское приложение.
исполняет скриты например такого вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
sys=new System();
db=new Database();
db.connect("sql:second","sysdba","masterkey");
trn=new Transaction(db);

q=new Query(db,trn);
q.setSql("select order_id, order_date, order_comment, order_summ from orders");
q.addSql("where order_id>? and order_date>? and order_comment like ? and order_summ>?");
q.addIntegerParam( 10 );
q.addDateTimeParam(new SystemTime("18.05.2009"));
q.addStringParam("'%всякое%'");
q.addFloatParam( 1 . 5 );
q.open();
sys.println("Полей в результате=",q.fieldsCount());
while (!q.eof())
{
 fld0=q.fieldByIndex( 0 ).asInteger();
 fld1=q.fieldByIndex( 1 ).asDateTime();
 fld2=q.fieldByIndex( 2 ).asString();
 fld3=q.fieldByIndex( 3 ).asFloat();
 sys.println(fld0);
 sys.println(fld1.dateToStr());
 sys.println(fld2);
 sys.println(fld3);
 q.next();
}
sys.println("end");

ссылка для скачивания
http://files.mail.ru/3M3IC1
в архиве небольшой текстовик с описанием классов и методов, исполняемый файл и dll ка от vozillовской spidermonkey

javascript поддерживается вроде как надо, всякие Array и прочее есть. ну во общем как в мозилле :) только добавил свои классы для связи с firebird

выложил чтобы узнать, интересно ли это кому то, кроме меня.
замесяния и пожелания приветствуются :)

это не релиз, это даже не бета, написал за сегодня :)
ничего не гарантируется!!!
...
Рейтинг: 0 / 0
31.05.2009, 13:24
    #36017580
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
обнаружил, что в прошлом архиве не хватало одной dll.
перезалил еще раз

http://files.mail.ru/PPORWX
...
Рейтинг: 0 / 0
31.05.2009, 22:21
    #36017944
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_k javascript поддерживается вроде как надо, всякие Array и прочее есть. ну во общем как в мозилле :) только добавил свои классы для связи с firebird
Это чего, типа FB я должен в Инету выставить?...
...
Рейтинг: 0 / 0
01.06.2009, 04:48
    #36018136
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
какая связь с инетом?
это просто интерпретатор. ему указываешь файл со скриптом и он его исполняет
...
Рейтинг: 0 / 0
01.06.2009, 05:27
    #36018147
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_kкакая связь с инетом?
это просто интерпретатор. ему указываешь файл со скриптом и он его исполняет
Ну и на фига попу тогда сия гармонь?
Ява-машина есть в броузере. Где еще она есть?
А скрипт я и так наваяю, тем же FAR-ом, а уж выполнить - инстрУметов хватает.
Али сие чудо крутее чем isql?
...
Рейтинг: 0 / 0
01.06.2009, 06:01
    #36018149
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Di_LIne
Ну и на фига попу тогда сия гармонь?

вот бы узнать
Di_LIne
Ява-машина есть в броузере. Где еще она есть?

при чем сдесь ява машина?
и в каком браузере она есть?
ты вообще, понимаешь о чем говоришь?
Di_LIne
Али сие чудо крутее чем isql?
вот это мне и интересно узнать

поясню.
интерпретатор яваскрипта никакого отношения ни к браузерам ни к интернету ни к ява машинам не имеет.
это просто интерпретатор. ему указываешь файл со скриптом, он его исполняет.
мне казалось что это очевидно, а вот подиж ты

сравнивать сие чудо с isql трудно, поскольку isql имеет возможность выполнять команды с клавиатуры, а этот интерпретатор только файлы.
...
Рейтинг: 0 / 0
01.06.2009, 06:43
    #36018155
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_kвот бы узнать
alex_kвот это мне и интересно узнать
Во дает!
Наваять - наваял, а нафига и сам не знает...


alex_kDi_LIne
Ява-машина есть в броузере. Где еще она есть?

при чем сдесь ява машина?
и в каком браузере она есть?
ты вообще, понимаешь о чем говоришь?

JavaScript должен выполнятся по стандарту, со времен HTML 1.0 и НетскейпНавигатора и Ехплорер 3.0... А значит в той же мазиле, к примеру, какбэ есть, иль в опере с сафри.
Про ослика - молчу, очам видный пример.

alex_kэто просто интерпретатор. ему указываешь файл со скриптом, он его исполняет.
мне казалось что это очевидно, а вот подиж ты
Та-ак... Скрипт этот на чем написан? Как в прымере что-ль?
Тогда - нафига оно надобно?
Если SQL-скрипт изображается любым текстовым редактором, а выпоняется...
Ну тем же IBExpert-ом. В более дружественной среде и окружении привычном.


ЗЫ: Я думал что типа фреймворка "JavaScript <-> FB" савял.
Это более интересная вещь получилась бы...

Попутно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
{
 fld0=q.fieldByIndex( 0 ).asInteger();
 fld1=q.fieldByIndex( 1 ).asDateTime();
 fld2=q.fieldByIndex( 2 ).asString();
 fld3=q.fieldByIndex( 3 ).asFloat();
 sys.println(fld0);
 sys.println(fld1.dateToStr());
 sys.println(fld2);
 sys.println(fld3);
 q.next();
}
нельзя было преобразовать в типа что-то:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
{
 sys.println(q.fieldByIndex( 0 ).asInteger());
 sys.println(q.fieldByIndex( 1 ).asDateTime().dateToStr());
 sys.println(q.fieldByIndex( 2 ).asString());
 sys.println(q.fieldByIndex( 3 ).asFloat());
 q.next();
}
...
Рейтинг: 0 / 0
01.06.2009, 06:46
    #36018157
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
ЗЫЗЫ: - Тут и Дельфи-то ни кто не знает , а он с JavaScript...
...
Рейтинг: 0 / 0
01.06.2009, 06:53
    #36018160
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Di_LIne,

если ты не знаешь что такое JavaScript - так и скажи.
Постараюсь поянить.
Яваскрипт - это язык. Его реализация есть, например, в браузерах.
Еще есть в флэш плеере.
Еще наверное где то есть.
И еще есть в программе, которую я сдесь выложил.
В довесок к стандартным для JavaScript классам, программа добавляет некоторые классы для работы с фб.

и да, так можно:
Код: plaintext
1.
2.
3.
4.
 sys.println(q.fieldByIndex( 0 ).asInteger());
 sys.println(q.fieldByIndex( 1 ).asDateTime().dateToStr());
 sys.println(q.fieldByIndex( 2 ).asString());
 sys.println(q.fieldByIndex( 3 ).asFloat());
как можно и многое другое. только надо понимать что такое JavaScript
...
Рейтинг: 0 / 0
01.06.2009, 06:55
    #36018161
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
к стати, поясни, что такое
Di_LIneчто типа фреймворка "JavaScript <-> FB"?
...
Рейтинг: 0 / 0
01.06.2009, 07:47
    #36018183
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_kDi_LIne,
если ты не знаешь что такое JavaScript - так и скажи.
Дык, какбэ я те указал спецификацию...

alex_kЯваскрипт - это язык.
Его реализация есть, например, в браузерах.
Еще есть в флэш плеере.
Еще наверное где то есть.
Ага, язык. И выполнением кода занимается так называемая Java-машина

alex_kИ еще есть в программе, которую я сдесь выложил.
Хм...
Вот объясни мне, как она, софтинка твоя, будет выполнять, самы элементанный JavaScript:
Код: plaintext
1.
2.
3.
document.open();
document.write('Бла-бла-бла');
document.close();
Где и что я получу(увижу)?

Я это к тому, что... Где и что, и как крутится - по большому счету ни кого не касается.
Важно что было на входе "черного ящика" и где отобразятся данные, после выхода их него.

alex_kи да, так можно:
Да это я поинтересовался, зачем нужно было, тем более в примере, определение переменных...

alex_k
Код: plaintext
trn=new Transaction(db);

А где параметры транзакции?

Так сейчас модно всякие фреймворки писать. Чего только не произвели на свет.
...
Рейтинг: 0 / 0
01.06.2009, 08:03
    #36018193
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Di_LIne
Код: plaintext
1.
2.
3.
document.open();
document.write('Бла-бла-бла');
document.close();

в стандарте JavaScript нет такого.

Di_LIneДык, какбэ я те указал спецификацию...
нет.
http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf
вот спецификация
...
Рейтинг: 0 / 0
01.06.2009, 08:05
    #36018194
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Di_LIne
Ага, язык. И выполнением кода занимается так называемая Java-машина

это неправда. выполнением занимается интерпретатор. например тот, который я выложил сдесь.

Позволь вопрос. Ты непонимаешь о чем говоришь, но продолжаешь это делать.
Зачем?
...
Рейтинг: 0 / 0
01.06.2009, 08:18
    #36018203
ilias1979
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_k,

извини но я не до конца догоняю зачем все это нужно
интерпретатор jscript есть стандартный встроенный в винду
юзать из него птицу можно примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
WScript.Echo("создание коннекта к базе данных");
var cn=new ActiveXObject("ADODB.Connection");
cn.Provider="LCPI.IBProvider";
cn.Open("location=172.16.0.19:testdb; ctype=win1251","taper","qwerty");
cn.BeginTrans();
var query= new ActiveXObject("ADODB.Command");
query.ActiveConnection=cn;
querytext = "select id from table";
query.CommandText=querytext;
var result_nd = query.execute;
while (!result_nd.EOF)
  {
     WScript.Echo(result_nd("id").value);
     result_nd("id").value
     result_nd.MoveNext();
  }
его же можно подцепить в любое свое win приложение заюзав стандартный COM MSScript Control

Я чего то пропустил или недопонял?
...
Рейтинг: 0 / 0
01.06.2009, 08:19
    #36018206
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_kDi_LIne
Код: plaintext
1.
2.
3.
document.open();
document.write('Бла-бла-бла');
document.close();

в стандарте JavaScript нет такого.Хм...
А броузер-то и не знает...

alex_kDi_LIneДык, какбэ я те указал спецификацию...
нет.
http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf
вот спецификация
Цитато:
авторДанный стандарт (ECMA262) формализует языковые конструкции JavaScript ...
Несмотря на то, что язык часто ассоциируется с объектной моделью, данный стандарт не определяет объектную модель... по этому следует четко различать объектную модель и элемент языка.
Цитировано по: С. Айзекс "Dynamic HTML", Microsoft Press 1997
...
Рейтинг: 0 / 0
01.06.2009, 08:22
    #36018209
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
ilias1979,

все верно.
вот я и спрашиваю, интересно ли кому либо другое решение?
из плюсов, используется не адодиби, а напрямую fbclient.dll
плюс я могу портировать под линукс или FreeBSD.
под линукс я уже портировал, ради интересу, но рабочего варианта сейчас нет.

из минусов, это кривая поделка без внятной поддержки :)
...
Рейтинг: 0 / 0
01.06.2009, 09:36
    #36018283
Юрий Носов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Может, я чевой-то не понимаю, но я всегда полагал, что главная фишка жаваскрипта это как раз интегрированность его в браузер, и встроенность в него DOM, что позволяет делать всякие штучки, типа динамического формирования контента на клиентской стороне. Если я не прав, поправьте..
...
Рейтинг: 0 / 0
01.06.2009, 09:57
    #36018317
BorisMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
ilias1979
извини но я не до конца догоняю зачем все это нужно
интерпретатор jscript есть стандартный встроенный в винду


Посмелею предположить что иногда удобно использовать инструмент без предустановки IBProvider.
Но тут на вкус и цвет...
Я например использовал IBEScript + JScript.

Автор молодец, но
1) Побольше примеров
2) Побольше классов (Например для выгрузку данных в dbf)
...
Рейтинг: 0 / 0
01.06.2009, 10:00
    #36018321
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
BorisMor,

дбф я писать не умею, только читать :)

побольше примеров могу предоставить, если будут вопросы по делу.
побольше классов можно, если будет нужно.

пока вижу необходимость сделать работу с блобами, сделать параметры соединения с базой, и параметры транзакции.
...
Рейтинг: 0 / 0
02.06.2009, 15:08
    #36021390
Alex Truhin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Di_LIne,

в данной ветке ты не прав, многие действительно ассоциируют JavaScript, с Java или с браузерами, но ни к тому ни к другому он отношения не имеет.
JavaScript вполне самостоятельный/самодостаточный язык, ЕГО используют браузеры.
>>Али сие чудо крутее чем isql?
isql тут не причем, нужно сие чудо для создания интерактивных скриптов, например мы используем (IBEBlock чем то похоже) при обслуживании БД, обновление, перерасчет и т.д. Т.е. там где нужно взаимодействие с пользователем (DBA) из скрипта.
>>Автору
Сама идея хорошая, вот только уже есть IBEScript имеющий на порядок больше возможностей, бесплатный, стабильно работающий. Так что пока не будет сопоставимо по удобству разговаривать не о чем. А чтобы было удобно нужна возможность смешанного написания SQL, JavaScript. Пример в IBEBlock:
Код: plaintext
1.
2.
3.
4.
DestDB = ibec_CreateConnection(__ctFirebird, DestDBParams);
ibec_Progress('Successfull.');
ibec_UseConnection(DestDB);
select CURRENT_VERSION from S_DATABASE into :DBVER;
ibec_UseConnection(DefDB);
...
Рейтинг: 0 / 0
02.06.2009, 15:20
    #36021425
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Alex TruhinА чтобы было удобно нужна возможность смешанного написания SQL, JavaScript.
Это действительно удобно?
мне непонятно это. лично мне кажется, что когда смешиваются два(или больше) языка это выглядит убого. например я не люблю html :)

но я понял, что инструменты есть, люди пользуются, все в порядке.
буду дорабатывать для себя :)
...
Рейтинг: 0 / 0
02.06.2009, 15:33
    #36021476
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Alex TruhinDi_LIne,
в данной ветке ты не прав...
Выяснив, что ни чего вкусного для меня тут нет - давно ушел из топика.
Бо JavaScript использую только в HTML и заменить его там нечем.
Ы?
...
Рейтинг: 0 / 0
02.06.2009, 16:32
    #36021620
Alex Truhin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
alex_kЭто действительно удобно?

Да. Напиши данный кусок на своем движке и все будет понятно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    
    ibec_Progress('Обновление системных комманд (ACTIONS)!');
    ibec_UseConnection(DefDB);
    for select AC_NAME, AC_CAPTION, AC_CATEGORY, AC_COMMANDTYPE, AC_COMMAND, AC_PARAM, AC_ICON
        from S_ACTIONS
    into :AC_NAME, :AC_CAPTION, :AC_CATEGORY, :AC_COMMANDTYPE, :AC_COMMAND, :AC_PARAM, :AC_ICON do begin
        ibec_UseConnection(DestDB);
        ibec_Progress('Обновляем отчет: ' || :ac_name);
        update S_ACTIONS
        set AC_CAPTION = :AC_CAPTION,
            AC_CATEGORY = :AC_CATEGORY,
            AC_COMMANDTYPE = :AC_COMMANDTYPE,
            AC_COMMAND = :AC_COMMAND,
            AC_PARAM = :AC_PARAM,
            AC_ICON = :AC_ICON
        where (AC_NAME = :AC_NAME);
    end
Т.е. в данном скрипте происходит чтение из одной БД и обновление в другой.
...
Рейтинг: 0 / 0
02.06.2009, 16:43
    #36021650
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
sys.println("Обновление системных комманд (ACTIONS)!");
defdb=new Database(...);
deftrn=new Transaction(defdb);
defq=new Query(defdb,deftrn);

destdb=new Database(...);
desttrn=new Transaction(destdb);

defq.setSql("select AC_NAME, AC_CAPTION, AC_CATEGORY, AC_COMMANDTYPE, AC_COMMAND, C_PARAM, AC_ICON from S_ACTIONS");
defq.open();
while (!defq.eof())
{
 destq=new Query(destdb,destrn);
 destq.setSql("update S_ACTIONS set AC_CAPTION =?,AC_CATEGORY =?,AC_COMMANDTYPE = ?,  AC_COMMAND = ?, AC_PARAM = ?, AC_ICON = ? where (AC_NAME = ?)");
 destq.addStringParam(defq.fieldByName("AC_CAPTION").asString());
 destq.addStringParam(defq.fieldByName("AC_CATEGORY").asString());
 destq.addStringParam(defq.fieldByName("AC_COMMANDTYPE").asString());
 destq.addStringParam(defq.fieldByName("AC_COMMAND").asString());
 destq.addStringParam(defq.fieldByName("AC_PARAM").asString());
 destq.addStringParam(defq.fieldByName("AC_ICON").asString());
 destq.addStringParam(defq.fieldByName("AC_NAME").asString());
 destq.open();
 defq.next();
}
desttrn.commit();

что, так уж неудобно?
я так привык :) еще с делфи :)
...
Рейтинг: 0 / 0
02.06.2009, 16:49
    #36021664
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript интерпретатор
я еще и редактор кода сделал на основе scite :)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / javascript интерпретатор / 25 сообщений из 72, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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