2015-04-22 6 views
3

Я пытаюсь вставить данные в базу данных с помощью SQL-адаптера в IBM mobilefirst платформы, однако мой код достигает функция провал ...отказ SQL адаптер Призвание в IBM MobileFirst

main.js:

function insertData(){ 

    alert("Function InsertData called"); 
    var fname = document.forms["form1"]["fname"].value.toString(); 
    var lname = document.forms["form1"]["lname"].value.toString(); 
    var email = document.forms["form1"]["email"].value.toString(); 
    var pwd = document.forms["form1"]["pwd"].value.toString(); 
    // alert("fname"+fname); 

    var invocationData = { 
    adapter: 'SQLDemo', 
    procedure: 'procedure4', 
    parameters:[fname,lname,email,pwd] 
    }; 

    var options = { 
    onSuccess : InsertDataSuccess, 
    onFailure : InsertDataFailed, 
    timeout : 30000 
    }; 
    WL.Client.invokeProcedure(invocationData, options); 
} 

function InsertDataSuccess(result){ 
    alert("Success"); 
    WL.Logger.debug("Retrieve success" + JSON.stringify(result)); 
} 

function InsertDataFailed(result){ 
    alert("Failure"); 
    WL.Logger.debug("Retrieve success" + JSON.stringify(result)); 
} 

Adapter'sSQLDemo-impl.js:

var procedure4Statement = WL.Server.createSQLStatement("INSERT INTO INNOVATION (FIRSTNAME,LASTNAME,EMAIL,PASSWORD) VALUES(?,?,?,?)"); 
function procedure4(fname,lname,email,password) { 
    return WL.Server.invokeSQLStatement({ 
     preparedStatement : procedure4Statement, 
     parameters : [fname,lname,email,password] 
    }); 
} 
+0

И что это ошибка, которую вы получите в InsertDataFailed ...? Что в итоге"? Кроме того, добавьте реализацию «procedure4». –

+0

Это будет функция onFailure var procedure4Statement = WL.Server.createSQLStatement («ВСТАВИТЬ В ИННОВАЦИИ (ПЕРВЫЙ ИМЕНА, ПОСЛЕДНИЕ, ЭЛЕКТРОННЫЕ ПОЧТЫ, ПАРОЛЬ) ЗНАЧЕНИЯ (?,?,?,?)»); // var procedure3Statement = WL.Server.createSQLStatement ("select * from INNOVATION где FIRSTNAME =? И id =?"); функция процедуры4 (имя_файла, LNAME, адрес электронной почты, пароль) { \t \t возвращение WL.Server.invokeSQLStatement ({ \t \t PreparedStatement: procedure4Statement, \t \t параметры: [имя_файла, LNAME, адрес электронной почты, пароль] \t}); } –

+0

1) очевидно, пожалуйста, отредактируйте вопрос с кодом - а не в комментариях. 2) Я спрашиваю, что он печатает в «результате». –

ответ

0

Из файла messages.log:

E FWLSE0099E: An error occurred while invoking procedure [project DemoProject]SQLDemo/SqlStatementFWLSE0100E: parameters: [project DemoProject] DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;.., DRIVER=3.61.75. Performed query: update AJAX set FIRSTNAME=? from AJAX where id=? FWLSE0101E: Caused by: [project DemoProject]com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;.., DRIVER=3.61.75java.lang.RuntimeException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;.., DRIVER=3.61.75.

...

Invalid data conversion: Parameter instance vinod is invalid for the requested conversion. ERRORCODE=-4461, SQLSTATE=42815

И над ним есть несколько исключений.

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

+0

Мой адаптер работает нормально. –

+0

Идан Адар мой адаптер работает и каждый раз, когда я звоню мой адаптер индивидуально в resultent в браузере, как { «isSuccessful»: правда, «updateStatementResult»: { «UpdateCount»: 1 } } не означает, что никаких проблем с базой данных –

+0

Да, ваш адаптер работает, ваша база данных неправильно сконфигурирована. Прочтите ошибку.Ошибка Google. –

Смежные вопросы