Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод данных в БД. 
:(
    Опции темы
Anark1
  Дата 5.1.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



Код

void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form2->Table1->Open();
if (Form2->DBEdit1->Text.Length() != 0)
{
Form2->Table1->Insert();  //вставка пустой строки
Form2->Table1->Prior();    //переход на пустую строку
Form2->Table1->Edit();     //редактирование пустой строки
Form2->Table1Name->AsString = Form2->DBEdit1->Text;
Form2->Table1Town->AsString = Form2->DBEdit2->Text;
Form2->Table1Work->AsString = Form2->DBEdit3->Text;
Form2->Table1Phone->AsString = Form2->DBEdit4->Text;
Form2->Table1Email->AsString = Form2->DBEdit5->Text;
Form2->Table1Info->AsString = Form2->DBMemo1->Text;
Form1->ListBox1->Items->Add(Form2->DBEdit1->Text); //добавление в список
Form2->Table1->Post();
Form2->Table1->Next();
}
Form2->Table1->Close();
Form2->Close();
}

Выше приведен код обработки кнопки - добавление записи в таблицу.
Изначально база пуста.
1)В строке 7 указывается возвращение на запись назад. Я дошел до этого опытным путём  smile . По идее Insert должен создать пустую запись и активировать её. Если я конечно правильно понял, но этого не происходит. Почему Insert работает неправильно.?
2)При добавлении второй записи в поля ввода (DBEdit, DBMemo) закрыт ввод. Такое насколько я знаю происходит когда не установлена связь с базой данной, но в обработчике событий (строка 3) соединение устанавливается. В чем дело? !!! Первая запись добавляется нормально !!!
З.Ы. Если написал что-нить оч глупое то заранее прошу прощения. Я ток учусь  smile


Это сообщение отредактировал(а) Anark1 - 5.1.2007, 23:20


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anark1
Дата 6.1.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



Насчет второго вопроса я ступил и сам разобрался, остается первый.  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Rodman
Дата 6.1.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



а так не пойдет???
Код

void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form2->Table1->Open();
if (Form2->DBEdit1->Text.Length() != 0)
{
Form2->Table1Name->AsString = '';
Form2->Table1Town->AsString = '';
Form2->Table1Work->AsString = '';
Form2->Table1Phone->AsString = '';
Form2->Table1Email->AsString = '';
Form2->Table1Info->AsString = '';

Form2->Table1->Insert();  //вставка пустой строки
Form2->Table1->Prior();    //переход на пустую строку
Form2->Table1->Edit();     //редактирование пустой строки
Form2->Table1Name->AsString = Form2->DBEdit1->Text;
Form2->Table1Town->AsString = Form2->DBEdit2->Text;
Form2->Table1Work->AsString = Form2->DBEdit3->Text;
Form2->Table1Phone->AsString = Form2->DBEdit4->Text;
Form2->Table1Email->AsString = Form2->DBEdit5->Text;
Form2->Table1Info->AsString = Form2->DBMemo1->Text;
Form1->ListBox1->Items->Add(Form2->DBEdit1->Text); //добавление в список
Form2->Table1->Post();
Form2->Table1->Next();
}
Form2->Table1->Close();
Form2->Close();
}

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Anark1
Дата 6.1.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



В чем разница? Ты просто задаешь пустые поля. Я спрашиваю насчет метода Prior(). Зачем он там нужен. Ведь фактически мы этим методом выделяем созданную пустую запись! А это должен выполнять INsert();


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
RatHat
Дата 7.1.2007, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вождь индейцев
*


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

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



Anark1, странно, сел проверил специально, инсерт срабатывает нормально. Приор делать не нужно...
Обратись к разработчику БД )))
--------------------
Ma a kis' hi ve'ist i wan'i na e'ho ho wan'i
PM MAIL   Вверх
Anark1
Дата 8.1.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



Ты проверял на моем тексте или на своем?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
RatHat
Дата 10.1.2007, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вождь индейцев
*


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

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



Anark1, на твоём.
--------------------
Ma a kis' hi ve'ist i wan'i na e'ho ho wan'i
PM MAIL   Вверх
Anark1
Дата 10.1.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



ОК. Спасибо конечно, но странно как то.  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Butsa
Дата 13.1.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.6.2006
Где: Украина,Харьков

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



Я вооще не пойму, зачем ты потом возращаешься на превидущую запись(мож я конечно чей-то не доганяю) , но принцип работы оператора Insert() заключается в добавление записи в конец баз, а там уже произойдет автоматическая сортировка по первичному ключу. smile 
PM MAIL ICQ   Вверх
RatHat
Дата 13.1.2007, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вождь индейцев
*


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

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



Цитата
принцип работы оператора Insert() заключается в добавление записи в конец баз


Butsa, если первичный ключ существует, то запись будет вставлена на позицию, согласно её индексу, а если нет, то запись будет добавлена по текущей позиции курсора (для Парадокса)
--------------------
Ma a kis' hi ve'ist i wan'i na e'ho ho wan'i
PM MAIL   Вверх
Anark1
Дата 13.1.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



Да, не понимаю почему происходил сбой. Написал новую программу с использованием БД. Там не использовал Prior. Все работает правильно. Спасибо всем. Тему можно закрывать. smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


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

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


 




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


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

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