Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Трудности Апдейта / 21 сообщений из 21, страница 1 из 1
27.09.2005, 18:54
    #33291797
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Код: plaintext
1.
2.
3.
getContenetData = con.createStatement();
			PreparedStatement updateStatment = con.prepareStatement("UPDATE Counter SET CounterName = '2'");
			updateStatment.executeUpdate();
- посчему эта сволоч не пашет??? ДБ - Аксес
...
Рейтинг: 0 / 0
27.09.2005, 19:36
    #33291854
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
вопрос, конечно, философский
а какая именно сволочь и как не пашет?
аксес не запускается?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
27.09.2005, 19:45
    #33291862
yuriypalych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Я могу сильно ошибаться, но возможно сволочь не пашет,
т.к. PreparedStatement работает с "вопросиками",
а затем подставляет конкретные значения.
Примерно так:
Код: 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.
            StringBuffer query =  new  StringBuffer();

            query.append("UPDATE ");
            query.append(table + " ");
            query.append("SET ");
            query.append(id_realty_ead  + "=?,");
            query.append(id_realty_date + "=?,");
            query.append(id_realty_type + "=?,");
            query.append(id_realty      + "=? ");
            query.append("WHERE ");
            query.append(id_realty_ead + "='"+vo.getIdRealtyEAD()+"'");

        EDSQLPreparedStatement statement =
            connection.prepareStatement(query.toString());

        statement.setString( 1 , vo.getIdRealtyEAD());
        statement.setDate  ( 2 ,  new  Date());
        statement.setLong  ( 3 , vo.getIdRealtyType());
        statement.setLong  ( 4 , vo.getIdRealty());

         try  {
            statement.executeUpdate();
        }  finally  {
            statement.close();
        }


EDSQLPreparedStatement - какой-то наследник класса.
...
Рейтинг: 0 / 0
27.09.2005, 23:49
    #33292049
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Не пашит - не произаодит апдейт. Хотя в предыдушей функции прекрасно про прошол селект через то же соеденение.
А разве переменные обязателны? Опять же в другой части проекта делал селект через PreparedStatement без переменных без проблем.
А как вы делаете апдейт из аксеса?
...
Рейтинг: 0 / 0
28.09.2005, 01:33
    #33292084
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Может ДБ Аксесовская быть закрыта от записи снаружи?
...
Рейтинг: 0 / 0
28.09.2005, 11:01
    #33292551
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
azz
Код: plaintext
1.
2.
3.
getContenetData = con.createStatement();
			PreparedStatement updateStatment = con.prepareStatement("UPDATE Counter SET CounterName = '2'");
			updateStatment.executeUpdate();
- посчему эта сволоч не пашет??? ДБ - Аксес

1. Зачем тебе еще один statement (updateStatement), когда ты уже создал один (getContentData)?

2. Попробуй так:
Код: plaintext
1.
2.
3.
getContenetData = con.createStatement();
getContentData.execute("UPDATE Counter SET CounterName = '2'");
getContentData.close();

Ну и выложи текст ошибки, которая у тебя вываливается.
...
Рейтинг: 0 / 0
28.09.2005, 11:08
    #33292574
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
может нуна транзакцию закоммитить?

типа con.commit(); ?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
28.09.2005, 11:21
    #33292616
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Pitbull terrier
может нуна транзакцию закоммитить?

типа con.commit(); ?

Posted via ActualForum NNTP Server 1.3

У Connection autoCommit по умолчанию true. Никаких коммитов делать не надо.
...
Рейтинг: 0 / 0
28.09.2005, 11:26
    #33292634
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
>>У Connection autoCommit по умолчанию true.

мне почему-то думается, что это от драйвера зависит

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
28.09.2005, 11:35
    #33292673
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Pitbull terrier
>>У Connection autoCommit по умолчанию true.

мне почему-то думается, что это от драйвера зависит

Posted via ActualForum NNTP Server 1.3

нет
...
Рейтинг: 0 / 0
28.09.2005, 11:41
    #33292696
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
А скину ка я вам весь класс. Может и получится что. Простите что коменты на неметском
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
 package  de.Calypso.tools;

 import  java.sql.Connection;
 import  java.sql.DriverManager;
 import  java.sql.PreparedStatement;
 import  java.sql.ResultSet;
 import  java.sql.SQLException;
 import  java.sql.Statement;


 public   class  DBprovider {
	 private   final   int  DBART =  1 ;
	 private   static  DBprovider DBlinc;
	 private  Connection con;
	
 private  DBprovider()  throws  SQLException {
		 switch  (DBART) {			//Ich fersuche jetzt DB konnektion für 3 DB- Vareanten zu realisiren
		 case   1 :						//Wareant "Access"
			 try  {
				//Initialisirung von DB Dreiver
				 Class .forName("sun.jdbc.odbc.JdbcOdbcDriver");
				//DB Location
				String database = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=DB/Calypso.mdb;";
				con = DriverManager.getConnection(database);
			}  catch  (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				System.out.println("DB error: " + e.getMessage());
				e.printStackTrace();
			}
			 break ;
		 case   2 :					//Wareant "MySQL".Speter
			 break ;
		 case   3 :					//Wareant "HSQLDB".Speter
			 break ;
		}
	}

	 public   static  DBprovider getInstance()  throws  SQLException {
		 if  (DBlinc ==  null ) {
			DBlinc =  new  DBprovider();
		}
		 return  DBlinc;
	}

	 public  Connection getConnection() {
		 return  con;
	}

		 public  String reservNextCounter(String CounterName) {
		Statement getCountertData;
		 try  {
			getCountertData = con.createStatement();
			String getCounterSQL = "select * from Counter where CounterName = '"
					+ CounterName + "'";
			ResultSet rs = getCountertData.executeQuery(getCounterSQL);
			 if  (rs.next()) {
				 int  intCounter = rs.getInt("Counter") +  1 ;
				 int  year = rs.getInt("Year");
				 int  size = rs.getInt("Size");
				//
				String counterNr = Integer.toString(intCounter);
				 while  (counterNr.length() < size) {
					counterNr = "0" + counterNr;
				}
				String counterYear = Integer.toString(year);
				 if  (counterYear.length() ==  1 ) {
					counterYear = "0" + counterYear;
				}
				String counter = counterYear + "-" + counterNr;
				 return  counter;
			}  else  {
				System.out.println("Ungultige Counter name");
			}

		}  catch  (SQLException e) {
			e.printStackTrace();
		}
		 return  "X";
	}

	 public   void  conformCounter(String CounterName) {
		 try  {
			Statement updateStatment = con.createStatement();
			updateStatment.executeUpdate("UPDATE Counter SET Counter = 3");
		}  catch  (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
...
Рейтинг: 0 / 0
28.09.2005, 15:43
    #33293629
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
и какую ошибку дает драйвер при попытке записи?

поле каунтер случаем не типа счетчик?
...
Рейтинг: 0 / 0
28.09.2005, 16:00
    #33293695
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Никакой ошибки! Ето какраз с ума и сводит. ПРосто нисего не происходит...
...
Рейтинг: 0 / 0
28.09.2005, 16:09
    #33293725
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
2 azz: Скажи какой тип у Counter?
...
Рейтинг: 0 / 0
28.09.2005, 16:14
    #33293738
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
numeric
Понимаеш, проблема в том что ДБ должен быть внутри проги.. типа локалный.. поетому и взал Аксес.. Щас пробию hsqldb подключить . Может с ним получится..
...
Рейтинг: 0 / 0
28.09.2005, 16:26
    #33293785
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
azznumeric
Понимаеш, проблема в том что ДБ должен быть внутри проги.. типа локалный.. поетому и взал Аксес.. Щас пробию hsqldb подключить . Может с ним получится..
вот hsqldb и бери, многие советують, это pure java db, а аксесс ацтой, только под виндой будет работать.
...
Рейтинг: 0 / 0
28.09.2005, 16:29
    #33293795
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Может кто скинит тогда советы как её ставить и конентится?
...
Рейтинг: 0 / 0
28.09.2005, 16:41
    #33293853
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
...
Рейтинг: 0 / 0
28.09.2005, 20:39
    #33294446
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Похоже я начал подбераться к решению. Короче так:
1. Я перешол на hsqldb. Это было не просто и стоило нервов но я справился. Результат - тот же!! Т.е. апдейт не результатов не ошибок не дает. А потом я решил проверет ето прямо в программе и сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
dBlinc = DBprovider.getInstance();
			System.out.println(dBlinc.reservNextCounter("test"));
			dBlinc.conformCounter("test");
			System.out.println(dBlinc.reservNextCounter("test"));
			dBlinc.conformCounter("test");
			System.out.println(dBlinc.reservNextCounter("test"));
			dBlinc.conformCounter("test");
			System.out.println(dBlinc.reservNextCounter("test"));
			dBlinc.conformCounter("test");
			System.out.println(dBlinc.reservNextCounter("test"));
			dBlinc.conformCounter("test");
			System.out.println(dBlinc.reservNextCounter("test"));
			dBlinc.conformCounter("test");
И как не странно получил именно то что нада:
Код: plaintext
1.
2.
3.
4.
 05 - 0002 
 05 - 0003 
 05 - 0004 
 05 - 0005 
 05 - 0006 
Вот только после ДБ остовался все еше не измененной.... Я подозреваю что все изменения сбрасываются если их какимто образом не подтвердить. Чтото типа Transactions? Как это сделать или как отменить подобный режим???
...
Рейтинг: 0 / 0
29.09.2005, 09:42
    #33294814
mansch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
//Ungultige Counter name
вы в Германии что ли работаете ?
...
Рейтинг: 0 / 0
29.09.2005, 11:17
    #33295099
azz
azz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трудности Апдейта
Для "mansch" - да, в Мюнхине. А вы?
Продолжение истории моего процесса "Любви" с базами данных - в моем следуйщем сообщение.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Трудности Апдейта / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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