Вверх ↑
Этот топик читают: Гость
Ответов: 171
Рейтинг: 19
#1: 2009-10-26 21:44:43 ЛС | профиль | цитата
Понравились новые компоненты data source, благодаря им разобрался на конец что из себя представляют МТ потоки, и как они упрощают жизнь))
Но не все так гладко, оказыветься если сам Data Source (пользуюсь mysql) засунуть в любой контейнер, то при выполнении запроса происходит runtime error.
Может это и глупо пихать data source в контейнер, но так как я хочу перевести только часть схемы на использование этого компонента, мне этот вариант был бы удобней.

Да, Хиасм сборка 180.
карма: 0

0
Ответов: 485
Рейтинг: 86
#2: 2009-10-26 22:54:04 ЛС | профиль | цитата
Borka, пример схемы с ошибкой нужен.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#3: 2009-10-27 00:13:56 ЛС | профиль | цитата
подозреваю, что после переноса в контейнер связь между менеджером и клиентом перестала существовать
карма: 27
0
Ответов: 171
Рейтинг: 19
#4: 2009-10-27 03:31:03 ЛС | профиль | цитата
Да, Dilma прав.
А почему в DSC_Exec событие onExec не происходит?
карма: 0

0
Ответов: 485
Рейтинг: 86
#5: 2009-10-28 05:07:55 ЛС | профиль | цитата
Borka писал(а):
А почему в DSC_Exec событие onExec не происходит?
Borka, пример схемы с ошибкой нужен.

карма: 0

0
Ответов: 171
Рейтинг: 19
#6: 2009-10-28 06:26:14 ЛС | профиль | цитата
Да в любом случае независимо от схемы событие не происходит.
Ну вот, такая к примеру:

code_15397.txt
карма: 0

0
файлы: 1code_15397.txt [2.3KB] [115]
Ответов: 485
Рейтинг: 86
#7: 2009-10-28 08:22:03 ЛС | профиль | цитата
Borka, в твоей схеме у DS_MySQL не прописаны сервер, имя пользователя, пароль и имя базы данных. Следовательно у DS_MySQL нет события onOpen и все что идет дальше не работает.
карма: 0

0
Ответов: 171
Рейтинг: 19
#8: 2009-10-28 11:53:19 ЛС | профиль | цитата
filyaxxxcom писал(а):
в твоей схеме у DS_MySQL не прописаны сервер, имя пользователя, пароль и имя базы данных.

Ага! Щас я выложу в общий доступ все пароли, явки...
Совсем меня за идиота держишь, я к базе подключатся неумею!
filyaxxxcom писал(а):
Следовательно у DS_MySQL нет события onOpen и все что идет дальше не работает.

Вот это как раз единственное событие которое происходит.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2009-10-28 12:06:57 ЛС | профиль | цитата
Borka, по хорошему следовало сделать любую тестовую базу в интернете и именно от нее выложить пароли. Если onExec не срабатывает, то вызывается onError с кодом ошибки чего и советую проверить.
карма: 27
0
Ответов: 171
Рейтинг: 19
#10: 2009-10-28 12:56:53 ЛС | профиль | цитата
Вот создал тестовую базу, явки пароли внутри
code_15400.txt

Чего заметил, что START TRANSACTION не проходит..
------------ Дoбавленo в 13.07:

карма: 0

0
файлы: 1code_15400.txt [2.5KB] [164]
Ответов: 485
Рейтинг: 86
#11: 2009-10-28 13:39:20 ЛС | профиль | цитата
1) ИМХО для запросов типа SELECT к базе данных лучше использовать DSC_Query, а DSC_Exec для создания таблиц, очистки.
2) Схема ниже корректно работает и выдает результат на точку останова. Дальше по образу и подобию...
code_15401.txt
карма: 0

0
файлы: 1code_15401.txt [1.1KB] [131]
Ответов: 171
Рейтинг: 19
#12: 2009-10-28 13:53:36 ЛС | профиль | цитата
filyaxxxcom писал(а):
Схема ниже корректно работает и выдает результат на точку останова

onQuery то всеравно не происходит где START TRANSACTION

Да и вообще ни INSERT ни UPDATE не выполняются

Нет выполняются, но onExec нету
карма: 0

0
Ответов: 485
Рейтинг: 86
#13: 2009-10-28 14:11:45 ЛС | профиль | цитата
Borka писал(а):
onQuery то всеравно не происходит где START TRANSACTION

Читаем описание к точке onQuery:
Событие происходит после выполнения запроса к источнику данных и выдает в поток полученные результаты

А тут результата на выходе нет
START TRANSACTION;
SET CHARACTER SET cp1251;
COMMIT;
Borka писал(а):
Да и вообще ни INSERT ни UPDATE не выполняются
Это может завтра посмотрю...

карма: 0

0
Ответов: 171
Рейтинг: 19
#14: 2009-10-28 14:21:17 ЛС | профиль | цитата
filyaxxxcom писал(а):
А тут результата на выходе нет

Ну старые компоненты выдавали 0 в таком случае.
Да и на инсерты менял всеравно ничего.
------------ Дoбавленo в 14.26:
START TRANSACTION;
SET CHARACTER SET cp1251;
COMMIT;
Мощный запрос.
------------ Дoбавленo в 15.54:
Ну все правильно, трансакация выполняется, а вот события onExec не происходит
Add(MainForm,12739774,21,77)
{
Width=811
Height=616
}
Add(DS_MySQL,16500094,175,126)
{
Name="baze"
Server="heliohost.org"
Username="kpb740_hiasm"
Password="onlyforhiasmusers"
DBName="kpb740_test"
link(onOpen,14309764:doEvent,[])
}
Add(FormatStr,7850451,293,224)
{
DataCount=1
Mask="SELECT name, pass, email, icq, date, total FROM users WHERE name = '%1'"
link(onFString,3736019:doQuery,[])
link(Str1,189132:Var1,[(299,208)])
}
Add(DSC_Query,3736019,336,224)
{
DSManager="baze"
link(onQuery,15290198:doEvent,[])
}
Add(FormatStr,5501671,388,308)
{
DataCount=7
Mask="INSERT INTO `baned` (`user_id`, `name`, `pass`, `email`, `icq`, `date`, `total`, `who`, `ban_date`) VALUES (NULL, '%1', '%2', '%3', '%4', '%5', '%6', '%7', CURDATE());"
link(onFString,5813092:doExec,[])
link(Str1,4120447:Value1,[])
link(Str2,4120447:Value2,[])
link(Str3,4120447:Value3,[])
link(Str4,4120447:Value4,[])
link(Str5,4120447:Value5,[])
link(Str6,4120447:Value6,[])
link(Str7,189132:Var2,[])
}
Add(DSC_Exec,5813092,464,308)
{
DSManager="baze"
}
Add(GlobalVarEx,14764252,430,185)
{
Name="name"
Data=String(Вася)
}
Add(DSC_Exec,12775326,294,168)
{
SQL="SET CHARACTER SET cp1251;"
DSManager="baze"
link(onExec,2566426:doEvent,[])
}
Add(Button,277056,18,130)
{
Left=10
Top=20
link(onClick,9079224:doEvent1,[])
}
Add(Hub,9079224,75,130)
{
link(onEvent1,16500094:doOpen,[(107,136)(107,132)])
link(onEvent2,16500094:doSelectDB,[(107,143)(107,146)])
}
Add(DSC_Exec,3142860,366,371)
{
DSManager="baze"
link(onExec,4518120:doEvent,[])
}
Add(FormatStr,11798996,304,371)
{
DataCount=1
Mask="DELETE FROM users WHERE name='%1'"
link(onFString,3142860:doExec,[])
link(Str1,189132:Var3,[(310,208)])
}
Add(GetDataEx,189132,430,203)
{
link(Data,14764252:Var,[])
}
Add(DSC_Exec,5660887,303,420)
{
SQL="COMMIT;"
DSManager="baze"
link(onExec,2330868:doEvent,[])
}
Add(LineBreak,16138944,119,133)
{
Caption="off"
Color=255
link(Out,16500094:doClose,[])
Primary=[12285549,262,287]
}
Add(DSC_Exec,8042473,294,126)
{
SQL="START TRANSACTION;"
DSManager="baze"
link(onExec,16304908:doEvent,[])
}
Add(MT_MultiMem,4120447,388,224)
{
Count=6
link(onData,5501671:doString,[(445,230)(445,272)(376,272)(376,314)])
}
Add(Debug,15290198,372,224)
{
WEName="onQuery"
link(onEvent,4120447:doValue,[])
}
Add(Debug,16304908,357,126)
{
WEName="START TRANSACTION"
}
Add(Debug,2566426,357,168)
{
WEName="SET CHARACTER"
}
Add(Debug,14309764,213,126)
{
WEName="onOpen"
link(onEvent,14332213:doEvent1,[])
}
Add(Hub,14332213,239,126)
{
OutCount=5
link(onEvent1,8042473:doExec,[])
link(onEvent2,12775326:doExec,[(288,139)(288,174)])
link(onEvent3,7850451:doString,[(273,146)(273,230)])
link(onEvent4,11798996:doString,[(279,153)(279,377)])
link(onEvent5,5660887:doExec,[(278,160)(278,426)])
}
Add(Debug,4518120,406,371)
{
WEName="onExec1"
}
Add(Debug,2330868,350,420)
{
WEName="COMMIT"
link(onEvent,12285549:In,[])
}



Авторы компанента, где onExec[img] http://hiasm.com/xx/smilies/icon_question.gif [/img]
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#15: 2009-10-28 16:29:17 ЛС | профиль | цитата
Borka писал(а):
трансакация выполняется

Есть ли абсолютная уверенность, что она выполняется до конца
------------ Дoбавленo в 16.33:
И еще, вот эта рекомендация выполнена
Dilma писал(а):
Если onExec не срабатывает, то вызывается onError с кодом ошибки чего и советую проверить

И есть абсолютная уверенность, что на onError ничего нет
------------ Дoбавленo в 16.42:
И вообще, зачем START TRANSACTION и COMMIT, когда группа запросов выполняется внутри элементов в своих транзакциях
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)