2014-11-04 3 views
0

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

Я использую пример из here и я могу получить следующий код для отображения данных:

while(resultset.next()){ 
     out.println(resultset.getString(1)); 

    } 

При попытке присвоения resultset.getString(1) переменной, я получаю:

Java .sql.SQLException: [Microsoft] [Менеджер драйверов ODBC] Недопустимая длина строки или буфера

Вот образец код, который я использую:

 <% 
     String strEmail = ""; 
     Connection connection = DriverManager.getConnection(
      "jdbc:odbc:dbcon", "acctName", "acctNamePass"); 

     Statement statement = connection.createStatement() ; 
     ResultSet resultset = statement.executeQuery("SELECT [ctt_email] FROM [petergriffin].[dbo].[contact] where ctt_id = 13") ; 

     while(resultset.next()){ 
      strEmail = resultset.getString(1); 

     } 
     out.println(strEmail); 

    %>  

Может кто-нибудь сказать мне, что я делаю неправильно?

+0

Какова стоимость и тип 'ctt_email'? –

+0

Пожалуйста, не используйте Scriptlets. И особенно, * пожалуйста * не используйте JDBC в Scritplets. –

ответ

0

Несмотря на то, что это похоже на проблему с типом данных, это распространенное сообщение об ошибке, если вы работаете с 64-разрядной системой с использованием моста jdbc/odbc. Если я не ошибаюсь, модем jdbc: odbc использует старый 32-разрядный ODBC-драйвер, который получает все janky при использовании в 64-битной среде (что я предполагаю, что вы работаете).

Рекомендация, чтобы найти более подходящий и до современных драйвера JDBC, как http://msdn.microsoft.com/en-us/data/aa937724.aspx

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