Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Id шник глючит 
:(
    Опции темы
Samotnik
Дата 21.6.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



добрый день!!!!!
ЗНачицца, пишу прогу с использованием БД на SQL    и проблема возникает при добавлении. 
В базе имеется 5 записей (1-я  ID и остальные .... )  При добавлении(в Java ) пользователь заполняет(в едитках) все кроме ID (Т.е. из 5 записей только 4) 
База в SQL 
Код

Create table Books
(
BookID       Integer     NOT NULL,
Title        Varchar(50) NOT NULL,
Quantum      Integer     NOT NULL,
PublishDate  Date        NOT NULL,
Author       Varchar(50) NOT NULL,
Primary Key(BookID) 
);

Все добавляется круто, кроме ID шника  Получается так:  в базе 10 записей, т.е. по логики при добавлении должны быть записи с ID 11, 12, ну и выше, матря скока добавлений пользователей сделает!!!!  А у мя получается, при первом добавлении, вместо 11 записи получается 1920, затем при еще одном добавлении вместо предполагаемом 12 получается 1945 
Код как я делаю добавление
Код

static class ButtonAdd implements ActionListener
{
    
public void actionPerformed(ActionEvent event)
{
//b1.hide();
//b3.hide();    
//b4.hide();

//lFrame.resize(600,401);

    
if(flag%2!=0 && flag!=0){    
int count, count1;
String name1, name2;
Date date;
String a,b,c,d; 

try{
a=(String)t3.getText();
b=t1.getText();
c=ch1.getSelectedItem();
d=(String)t2.getText();
Calendar cal = Calendar.getInstance();
String n=new SimpleDateFormat().format(cal.getTime());
System.out.print(a);
System.out.print(b);
System.out.print(d);
System.out.print(n);
System.out.print(c);
con=DriverManager.getConnection(url,"dba","sql");
sq=con.createStatement();
sq.execute("set dateformat dmy");
String str="insert into Oborudovanie values("+a+" , '"+b+"', "+d+", '"+n+"',  '"+c+"' ) ";
sq.execute(str);
str=" SELECT \"Oborudovanie\".\"ID_oborud\", \"Oborudovanie\".\"Nazvanie\", \"Oborudovanie\".\"Kolichestvo\", \"Oborudovanie\".\"DataPost\", \"Oborudovanie\".\"Postavschik\"  FROM   \"DBA\".\"Oborudovanie\" \"Oborudovanie\"";
   ResultSet r=sq.executeQuery(str);
   int i=0;   
   while(r.next())
     {
count1=r.getInt("ID_oborud");
newContentPane.table.setValueAt(count1,i,0);
name1=r.getString("Nazvanie");
newContentPane.table.setValueAt(name1,i,1);
count=r.getInt("Kolichestvo");
newContentPane.table.setValueAt(count,i,2);
date=r.getDate("DataPost");
newContentPane.table.setValueAt(date,i,3);
name2=r.getString("Postavschik");
newContentPane.table.setValueAt(name2,i,4);
i++;}
    
    con=null;
    t1.setText("");
        t2.setText("");
            t3.setText("");
                            
            b1.show(true);
            b3.show(true);
            b4.show(true);
            con.close();
}
    catch(Exception e){System.out.println("Error");}
}

flag++;
}    }


 smile   помогите плз, как ID шник в чувства привести!!!!??????

PM MAIL   Вверх
LSD
Дата 21.6.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



А как ты вообще ID генерируешь?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Samotnik
Дата 21.6.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Сначала вот так
Код

String a=(String)t3.getText(); // инициализация

Затем записывю id и все остальное в str,  
Код

ResultSet r=sq.executeQuery(str); //выполнение запроса

Затем
Код

count1=r.getInt("ID_oborud");
newContentPane.table.setValueAt(count1,i,0); //Получаю значение из едита

Вроде так .....
PM MAIL   Вверх
LSD
Дата 21.6.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Samotnik @  21.6.2007,  14:57 Найти цитируемый пост)
Сначала вот так

И что этот код обозначает? Ты же писал, что пользователь не заполняет поле ID?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
DEER
Дата 21.6.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



ТО есть получается что ты в поле ID записываешь то, что введено в t3.

Если в СУБД не предусмотрены последовательности (sequences) и автоинкремент ключевого поля, то алгоритм добавления МОЖЕТ БЫТЬ примерно такой:
1) выбрать максимальное значение ID из таблицы (SELECT MAX(ID_oborud) FROM Oborudovanie)
2) в программе получаешь это значение и прибавляешь к нему 1
3) Составляешь запрос на добавление где в поле ID записываешь чмсло из пункта 2.


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Samotnik
Дата 21.6.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Цитата(LSD @  21.6.2007,  14:01 Найти цитируемый пост)
И что этот код обозначает? Ты же писал, что пользователь не заполняет поле ID?

 smile 
Кстати да, чето у мя тут явно  не так, как было задуманно!!!! 
Ща переделаю!

Добавлено через 2 минуты и 17 секунд
Цитата(DEER @  21.6.2007,  14:05 Найти цитируемый пост)
ТО есть получается что ты в поле ID записываешь то, что введено в t3.

В том то все и дело, что ID пользователь вводить НЕ ДОЛЖЕН,  этот  id должен сам по 1 добавляться (ну т.е.  1,2,3,4,5, .......)  при каждом добавлении.
 LSD подсказал  круто, у мя там чето намудренно, и не правильно!!!!
Вот!!!! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.