Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Програмная запись в таблицу, в определенное поле, Как в Buildere 6.0 добавить запись 
:(
    Опции темы
gugel
Дата 25.3.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет!
Подскажите, пожалуйста, у меня на форме есть компоненты:
                                                                                                      Table1, DataSourse1, DBGrid1.
В DBGrid1 есть поля: Number, Name и Data.

Как мне программно добавлять данные в таблицу, так, чтоб после определенного действия, например " x = x + 1", результат добавлялся в поле Number, имя того кто вычислил, в поле Name, число когда было проведено вычисление, в поле Data?
PM MAIL   Вверх
Varenij
Дата 25.3.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Table1.FieldByname('Number').asInteger:=x;
Table1.FieldByname('Name').asString:=name;
Table1.FieldByname('Number').asDateTime:=Date;
PM MAIL   Вверх
gugel
Дата 25.3.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Varenij, спасибо  smile

Это сообщение отредактировал(а) gugel - 25.3.2008, 13:54
PM MAIL   Вверх
gugel
Дата 25.3.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Только появилась одна проблемка.

Новая запись затирает старую. Как сделать чтоб записи добавлялись. То есть чтоб БД "выростала"?
PM MAIL   Вверх
gugel
Дата 25.3.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Наверно, нужно и по Х и по У координаты одновременно вводить? Подскажите, пожалуйста, как это сделать?
PM MAIL   Вверх
gugel
Дата 25.3.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это стандартные функции? Или методы DBGrid?
PM MAIL   Вверх
RatHat
Дата 25.3.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



пиши так:

Код

Table1->Append();                                                   //Добавляет пустую строку в таблицу и переводит курсор на неё.
Table1.FieldByname('Number').asInteger:=x;
Table1.FieldByname('Name').asString:=name;
Table1.FieldByname('Number').asDateTime:=Date;
Table1->Post();

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


Новичок



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

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



Вот такой код:

     
Код

    Table1->Edit();

    Table1->Append();

1.  Table1->FieldByName("Number")->AsString = "string";
2.  Table1->FieldByName("Name")->AsString = "*.doc";
3.  Table1->FieldByName("Data/time")->AsDateTime = IntToStr(2008);

    Table1->Post();


Если компилирую с 3 строкой, то все компилируется, при вызове, появляется сообщение: '2008' is not a valid date and time

Если только 1 и 2, то вот такое сообщение: Key violation
И внесенные данные не сохраняются, хотя и добавляются. Если нажать на SHIFT, чтоб появилась возможность вносить данные в ручную, то опять появляется сообщение Key violation

Как автоматически сохранять?

Как внести системное время в поле Data/time?

Что сделать, чтоб не появлялось сообщение Key violation

Пробовал в конце кода вставлять  Table1->Append(), но не прокатило.
PM MAIL   Вверх
Rodman
Дата 25.3.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


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

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



Цитата(gugel @  25.3.2008,  15:42 Найти цитируемый пост)
И внесенные данные не сохраняются, хотя и добавляются. 

Close таблице наверно нужен...
Цитата(gugel @  25.3.2008,  15:42 Найти цитируемый пост)

Как внести системное время в поле Data/time?

форматируй дату при вводе! FORMAT в SQL...
Цитата(gugel @  25.3.2008,  15:42 Найти цитируемый пост)
Как автоматически сохранять?

по какому событию ты добавляешь данные в грид?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
gugel
Дата 25.3.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



С Close покажи, пожалуйста, пример.

Системную дату я внесу сам. Переделаю поле, под тип данных Integer и скопирую системное время.

Я добавляю данные в DBGrid по нажатию кнопки.
PM MAIL   Вверх
Rodman
Дата 25.3.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


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

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



если проект не большой, выложи - я поковыряю...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
gugel
Дата 26.3.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Rodman, 7,5 МГб и это в сжатом виде. 

Все, я разобрался, похоже. Я сделал одно поле обязательным к заполнению . И теперь, если в это поле попадает имя, которое уже есть, возникает ошибка:

key violation - ошибка ключа.

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

Я переделал таблицу. Теперь все работает.

Спасибо всем большое за помощь  smile 



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

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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