Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 8
1

Не могу изменить данные в таблице (MDB- MS ACCESS 2003) в JBUILDERe 9

31.10.2010, 16:37. Показов 1942. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Товарищи подскажите...
Подцепил простейшую таблицу из двух полей (она в MDB базе)....через JDBC-ODBC мост...... стандартно через Database->queryDataSet.
Воот. Выводится на ура....а при попытке изменить данные начинает орать что-то вроде:

DataSet has no unique row identifiers
Note: For QueryDataSets you need to disable metaDataUpdate.RowID in the metaDataUpdate property, in addition to setting the Rowid property on a column.
////

И где это все искать ???...нет ничего похожего.....;-((

(просьба ногами не пинать - я пытаюсь пересесть на Java c Builder C++)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2010, 16:37
Ответы с готовыми решениями:

Можно ли из другой базы .mdb изменить данные в таблице .mde файла?
можна ли из другой базы .mdb изменить данные в таблице .mde файл с помощью VBA допустим в...

Не могу изменить данные в таблице (Ms Sql server 2008 r2)
Всем здрасте. Собственно - сабж: создана таблица. Пытаюсь изменить в ней значение 30 на 20....

Учет создавшего и изменившего запись пользователя (Access 2003, *.mdb + *.mdw)
День добрый! Ребятки, не могу найти информацию как выполнить следующую задачу для Access 2003: ...

Access 2003 .mdb файл не открывается с ярлыка на него на файл сервере, но открывается если снач запус Access
Вирусов нет. Установлены все обновления Windows, Office. Есть сеть состоящая из 6...

8
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
31.10.2010, 16:46 2
Может стоит посмотреть в сторону java.sql.statement executeUpdate ?
0
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 8
31.10.2010, 16:59  [ТС] 3
А если можно подробнее......а то вот так я не совсем понимаю...
0
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
31.10.2010, 17:04 4
в классе statement есть 2 разные функции связанные с работой с таблицей - executeQuery - для SELECT'a (то есть выборки)
и executeUpdate - для INSERT DELETE UPDATE (то есть изменения) вполне возможно что в том классе который пользуешь ты ест ьтакое же разделение.
Я просто обычно работаю через Statement
0
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 8
31.10.2010, 17:13  [ТС] 5
Работаешь с Access или с любой базой ???...
Просто мне удобнее данные держать в Access...привычка
0
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
31.10.2010, 17:20 6
С любой - создаешь в настройках ODBC коннект к ней потом программно его получаешь (хотя конечно и программно наверняка можно создать)
и все.
0
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 8
31.10.2010, 17:37  [ТС] 7
Ok спасибо.....попробую разобраться....

А куска кода нет случайно ???
0
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
31.10.2010, 17:47 8
Слчайно есть
простейшая схема такая :
создаешь через ODBC коннект к своей базе или таблице
дальше примерно следующее:
Java
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
import java.sql.*;
import ...
 
.....
 
//начало функции
String url='jdbc:odbc:MyDB';
Connection con;
//проверяешь есть ли класс для общения через ODBC
try{
Class.forName('sun.jdbc.odbc.JdbcOdbcDriver');
}
catch(ClassNotFoundException e){}
try{
con=DriverManager.getConnection(url,'Admin','Admin');
java.sql.Statement stmt=con.createStatement();
ResultSet r=stmt.executeQuery('SELECT * from Table1');
while(r.next()){
System.out.println('field1='+r.getString('field1')+ ... + 'fieldN='+r.getString('fieldN'));
}
stmt.close();
con.close();
}
catch(SQLException ex){}
//конец функции
Вот но это простейший случай когда есть коннект с базой данных.
Надеюсь поможет.
0
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 8
01.11.2010, 11:28  [ТС] 9
проблема решена......
DB118: What is the cause and solution for the 'DataSet has no unique row identifiers' error when editing a QueryDataSet?
The JDBC driver in use might not support the JDBC metadata discovery methods (getPrimaryKeys, getIndexInfo) that DataExpress is using. One solution is to use a manual override of the built-in QueryDataSet metadata discovery mechanisms. To manually make a query updateable,

1. Set QueryDataSet.MetaDataUpdate property to NONE.
2. Set StorageDataSet.TableName to the name of your SQL table.
3. Set Column.RowId on the columns used as a unique index to the table.
4. If you have a BLOB columns, set their searchable property to false.

Note: These properties must be set before the QueryDataSet is opened.
0
01.11.2010, 11:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2010, 11:28
Помогаю со студенческими работами здесь

Как вытащить данные из ячейки в таблице из mdb на форму
Товарищи, обучаюсь основам по книги фленова, параллельно делаю свою програмулину, но вот впал в...

Путь к таблице access 2003
Как в VBA 6 указать путь к таблице, для того,чтобы программа брала оттуда данные?

Как обновить данные в нужной мне таблице mdb файла?
Подскажите пожалуйста чайнику (то есть мне) как правельно программным путем обновить данные в...

Нужно ли устанавливать Access 2003, если в Access 2016 итак возможно разрабатывать БД в формате Access 2003?
Здравствуйте! Подскажите пожалуйста, нужно ли устанавливать Access 2003, если в Access 2016 итак...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru