Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как удалить/добавить запись с помошью IBTable 
:(
    Опции темы
wer88
Дата 20.6.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



Как с помощью компонента IBTable, в Borland Builder 6 удалить или добавить запись, 
удалять пробовал вот так: 
Код

  IBTable1->Last();
        IBTable1->Delete();

Не приводит ни к какому результату. 
Вставлять пробую вот так: 
Код

 IBTable1->Last();
          IBTable1->Edit();
          IBTable1->Insert();
          IBTable1->FieldByName("Kod")=.....;

Кроме ошибок ничего не получаю :-( 
Заранее благодарен. 

Это сообщение отредактировал(а) wer88 - 20.6.2009, 19:29
PM MAIL   Вверх
Данкинг
Дата 20.6.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



А TIBQuery чем не подходит?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
wer88
Дата 20.6.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



Данкинг, IBTable1 как то удобнее, потому что с ним есть кое какой опыт работы. 
PM MAIL   Вверх
Данкинг
Дата 20.6.2009, 19:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(wer88 @  20.6.2009,  20:39 Найти цитируемый пост)
IBTable1 как то удобнее, потому что с ним есть кое какой опыт работы.  

Логика, конечно, железная, даже придраться не к чему. smile 

Код

IBTable1->Append();
IBTable1->FieldByName("Kod")=666;
IBTable1->Post;


Только тема всё же не в том разделе. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
wer88
Дата 20.6.2009, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



Цитата(Данкинг @  20.6.2009,  19:48 Найти цитируемый пост)
Только тема всё же не в том разделе. 

А в какой должна быть? Вроде компонет же интербейза.

Проблема в том что вот эта строчка: 
Код

IBTable1->FieldByName("Kod")=666;


Выдаёт Lvalue required. 
PM MAIL   Вверх
Данкинг
Дата 20.6.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(wer88 @  20.6.2009,  20:55 Найти цитируемый пост)
А в какой должна быть?

В теме про Билдер. smile 

Цитата(wer88 @  20.6.2009,  20:55 Найти цитируемый пост)
Выдаёт Lvalue required.  

Тык
 smile 



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
wer88
Дата 20.6.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



С этим рабозрался, спасибо большое! А почему удаление не работает? 
PM MAIL   Вверх
wer88
Дата 20.6.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



Вставил такой код для добавления:
 
Код

 IBTable1->Last();
          IBTable1->Append();
          IBTable1->FieldByName("Kod")->AsInteger=S2;
           IBTable1->FieldByName("K_Pol")->AsInteger=1;
          IBTable1->FieldByName("K_Obr")->AsInteger=1;
          IBTable1->FieldByName("K_job")->AsInteger=1;
          IBTable1->FieldByName("K_Tipn")->AsInteger=1;
          IBTable1->FieldByName("Vozr")->AsInteger=32;
          IBTable1->FieldByName("K_opr")->AsInteger=11;
          IBTable1->Post();

Вроде что то куда то добавляется, никаких ошибок, но и база без изменений остаётся :-( 
PM MAIL   Вверх
Данкинг
Дата 20.6.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(wer88 @  20.6.2009,  21:32 Найти цитируемый пост)
А почему удаление не работает?  

Что значит не работает? Вот твой код из первого поста:

Код

IBTable1->Last();
IBTable1->Delete();

Ты встаёшь на последнюю строчку и её удаляешь. Должно всё работать. smile 

Цитата(wer88 @  20.6.2009,  21:57 Найти цитируемый пост)
Вставил такой код для добавления:

На кой снова пишешь IBTable1->Last(); ? smile Запись добавится туда, куда СУБД сочтёт нужным, ибо СУБД сия реляционная есть. smile 

Цитата(wer88 @  20.6.2009,  21:57 Найти цитируемый пост)
но и база без изменений остаётся :-(  

Как ты это определяешь? Ищешь добавленную запись и не находишь?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
wer88
Дата 20.6.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



Цитата(Данкинг @  20.6.2009,  21:23 Найти цитируемый пост)
Как ты это определяешь? Ищешь добавленную запись и не находишь?

Да, даже refresh в конце вставил, нету такой записи. 
И с удалением тоже что то не то, никаих ошибок, всё ок, но запись на месте последняя :-( 

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


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



wer88, забыл совсем: а транзакцию подтверждаешь?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 21.6.2009, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

Репутация: 20
Всего: 329



Цитата(wer88 @  20.6.2009,  19:28 Найти цитируемый пост)
          IBTable1->Edit();
          IBTable1->Insert();

Настоятельно советую изучить хотябы простейшие методы работы с БД. Как я вижу, ты не знаешь даже, что такое Insert или Edit и с чем их едят.

Добавлено @ 01:37
Цитата(wer88 @  20.6.2009,  19:55 Найти цитируемый пост)
А в какой должна быть? Вроде компонет же интербейза.

С++ + Базы данных

Добавлено @ 01:38
Цитата(wer88 @  20.6.2009,  19:55 Найти цитируемый пост)
IBTable1->FieldByName("Kod")=666;


Выдаёт Lvalue required.  


Код

IBTable1->FieldByName("Kod")->AsInteger=666


Добавлено через 3 минуты и 1 секунду
Цитата(wer88 @  20.6.2009,  20:57 Найти цитируемый пост)
Вроде что то куда то добавляется, никаких ошибок, но и база без изменений остаётся :-(  

А ты что-нибудь знаешь о транзакциях?

Добавлено через 4 минуты и 28 секунд
И опять же про чтение.... ты видать писатель, ну типа читать не любишь smile . Советую и про транзакции тоже почитать.

P.S. Без обид  smile 

Это сообщение отредактировал(а) Akella - 21.6.2009, 01:38
PM MAIL   Вверх
wer88
Дата 21.6.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 14.6.2009

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



Цитата(Akella @  21.6.2009,  01:36 Найти цитируемый пост)
И опять же про чтение.... ты видать писатель, ну типа читать не любишь  . Советую и про транзакции тоже почитать.P.S. Без обид   

Да не на что обижаться, если умные люди подсказывают, а не просто говорят что ничего не знаю))) 

С добавлениеу/удалением в общем случае разобрался, спасибо огромное, теперь другая проблема, вроде гугл поюзал, почитал, ничего не нашел как решить её толком.
Для того что бы запись добавить мне надо значение из DBLookupComboBox получить, как я понял там не всё так просто, так не получается: 
Код

pol1=DBLookupComboBox2->Text

Присваивается просто пустая строка, может есть какой нибудь не сложный способ?

Добавлено через 7 минут и 28 секунд
Проблему решил вот так: 
Код

 IBTable1->FieldAddress(DBLookupComboBox2->Text);
  IBTable1->FieldByName("K_Pol")->AsInteger=IBTable6->FieldByName("Kod")->AsInteger;

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


Творец
****


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

Репутация: 20
Всего: 329



Цитата(wer88 @  21.6.2009,  12:40 Найти цитируемый пост)
теперь другая проблема,


M
Akella
одна тема - один вопрос

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

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


 




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


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

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