2009-11-10 4 views
2

Новые для Tsung и Erlan и столкнулись с проблемой, на которую я не смог найти ответ. Я использую erlang-mysql-драйвер в функции Erlang в режиме Teng dynvars, и у меня, похоже, проблема с экранированными кавычками.Функция Tsung Erlang (dynvars) - ускользающие цитаты

Я хотел бы сделать что-то вроде этого:

 <setdynvars sourcetype="eval" 
       code='fun({Pid,DynVars})-> 
        mysql:start_link(p1, "localhost", "user", "pass", "db"), 
        Result = mysql:fetch(p1, "SELECT * FROM consumers WHERE first_name=\'Doonley\'") end.'> 
     <var name="myres" /> 
    </setdynvars> 

, но я получаю сообщение об ошибке: пробельные

Douglas-Sparlings-MacBook-Pro:.tsung dsparling$ tsung start 
Starting Tsung 
"Log directory is: /Users/dsparling/.tsung/log/20091110-16:35" 
3284- fatal: {whitespace_required_between_attributes} 
["Config Error, aborting ! ",{fatal,{{whitespace_required_between_attributes},{file,"/Users/dsparling/.tsung/tsung.xml"},{line,72},{col,221}}}] 

я на самом деле нужно использовать переменную для выбора, но я не уверен в синтаксисе. Что-то вроде следующего является то, что я ищу:

 <setdynvars sourcetype="eval" 
       code='fun({Pid,DynVars})-> 
        Val='Doonley", 
        mysql:start_link(p1, "localhost", "user", "pass", "db"), 
        Result = mysql:fetch(p1, "SELECT * FROM consumers WHERE first_name=?", Val) end.'> 
     <var name="myres" /> 
    </setdynvars> 

ответ

2

Попробуйте избежать одинарные кавычки, как &apos;. Например:

<setdynvars sourcetype="eval" 
      code='fun({Pid,DynVars})-> 
       mysql:start_link(p1, "localhost", "user", "pass", "db"), 
       Result = mysql:fetch(p1, "SELECT * FROM consumers WHERE first_name=&apos;Doonley&apos;") end.'> 
    <var name="myres" /> 
</setdynvars> 
+0

Я думал об этом позже, хотя это, кажется, не быть успешным или: [! "Ошибка конфигурации, отбрасывание", {function_clause, [{erl_scan, scan_string1, [[ "'" , 68,111,111,110,108,101,121, "'", 34,41,32,101,110,100,46], 1, no_col, 34, "= eman_tsrif EREHW sremusnoc MORF * TCELES", "= eman_tsrif EREHW sremusnoc MORF * TCELES", 0]}, {erl_scan, scan_string , 6}, {erl_scan, string1,5}, {ts_utils, Eval, 1}, {ts_config, разобрать, 2}, {списки, foldl, 3}, {ts_config, разобрать, 2}, {списки, foldl, 3 }]}] –

+0

Хм, кажется, что строка превратилась в глубокий список из-за апострофов. Я предполагаю, что это ошибка в Tsung, которая может быть исправлена ​​путем изменения 'erl_scan: string (Code)' to 'erl_scan: string (lists: flatten (Code))' в 'eval' в функции' ts_utils.erl '. – legoscia

+1

Спасибо, что, похоже, это сделали. Я представил только отчет. –