Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2010, 13:40   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию Вставка записи, перед которой стоит ноль

При работе с ADO столкнулся с интересным для меня вопросом. В БД вставляю запись из поля, в котором находится число, например, 02. Так вот, двойка вставляется, а ноль отбрасывается и в БД заносится только двойка, без ноля. В связи с этим вопрос: почему? И как сделать, чтобы число заносилось вместе с нулем вначале?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.06.2010, 06:22   #2
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Ну так все просто. С точки зрения математики. 02 это что за число?
А вообще надо настроить формат хранения для этого поля.
В Access если откроешь таблицу в режиме конструктора то там у числового поля есть свойство "Формат".
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 28.06.2010, 06:31   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А у меня вот этот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.ADOTable1.Edit;
 Form1.ADOTable1.FieldByName('LICEVOISCHET').AsInteger:=StrToInt(Form1.Edit29.Text);
 Form1.ADOTable1.FieldByName('DILER').AsString:=Form1.Edit30.Text;
 Form1.ADOTable1.FieldByName('FAMPRODAVCA').AsString:=Form1.Edit1.Text;
 Form1.ADOTable1.FieldByName('NAMEPRODAVCA').AsString:=Form1.Edit3.Text;
 Form1.ADOTable1.FieldByName('DATAZAP').AsString:=DateToStr(Form1.DateTimePicker1.Date);
 Form1.ADOTable1.FieldByName('GOROD').AsString:=Form1.Edit4.Text;
 Form1.ADOTable1.FieldByName('MOBNOMER').AsString:=Form1.Edit2.Text;
 Form1.ADOTable1.FieldByName('SIMKARTA').AsString:=Form1.Edit5.Text;
 Form1.ADOTable1.FieldByName('TARPLAN').AsString:=Form1.Edit6.Text;
 Form1.ADOTable1.FieldByName('USLUGA').AsString:=Form1.Edit7.Text;
 Form1.ADOTable1.FieldByName('DOPNOMER').AsString:=Form1.Edit8.Text;
 Form1.ADOTable1.FieldByName('FAMABONENTA').AsString:=Form1.Edit11.Text;
 Form1.ADOTable1.FieldByName('NAMEABONENTA').AsString:=Form1.Edit12.Text;
 Form1.ADOTable1.FieldByName('OTCHEABONENTA').AsString:=Form1.Edit13.Text;
 Form1.ADOTable1.FieldByName('DATAROGD').AsString:=DateToStr(Form1.DateTimePicker2.Date);
 Form1.ADOTable1.FieldByName('POL').AsString:=Form1.Label30.Caption;
 Form1.ADOTable1.FieldByName('MESTOROGD').AsString:=Form1.Edit14.Text;
 Form1.ADOTable1.FieldByName('PASSPORTSER').AsString:=Form1.Edit15.Text;
 Form1.ADOTable1.FieldByName('PASSPORTNOMER').AsString:=Form1.Edit16.Text;
 Form1.ADOTable1.FieldByName('DATAVYDACHI').AsString:=DateToStr(Form1.DateTimePicker3.Date);
 Form1.ADOTable1.FieldByName('KEMVYDAN').AsString:=Form1.Edit17.Text;
 Form1.ADOTable1.FieldByName('ORGANIZATION').AsString:=Form1.Edit18.Text;
 Form1.ADOTable1.FieldByName('SROKREGISTRACII').AsString:=Form1.Edit19.Text;
 Form1.ADOTable1.FieldByName('OBLAST').AsString:=Form1.Edit20.Text;
 Form1.ADOTable1.FieldByName('GORODPOS').AsString:=Form1.Edit21.Text;
 Form1.ADOTable1.FieldByName('ULICA').AsString:=Form1.Edit22.Text;
 Form1.ADOTable1.FieldByName('DOM').AsInteger:=StrToInt(Form1.Edit23.Text);
 Form1.ADOTable1.FieldByName('KORPUS').AsInteger:=StrToInt(Form1.Edit24.Text);
 Form1.ADOTable1.FieldByName('KVARTIRA').AsInteger:=StrToInt(Form1.Edit25.Text);
 Form1.ADOTable1.FieldByName('EMAIL').AsString:=Form1.Edit26.Text;
 Form1.ADOTable1.Insert;
 Form1.ADOTable1.Append;
// Form1.ADOTable1.Post;
 Form1.ADOTable1.Refresh;
end;
Вставляет записи, но. Если я первую запись вставляю, то нормально, а если сразу же вторую, то первая затирается второй. Что не так?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.06.2010, 06:54   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
// Form1.ADOTable1.Edit;
 Form1.ADOTable1.Insert;
 Form1.ADOTable1.FieldByName('LICEVOISCHET').AsInteger:=StrToInt(Form1.Edit29.Text);
 Form1.ADOTable1.FieldByName('DILER').AsString:=Form1.Edit30.Text;
 Form1.ADOTable1.FieldByName('FAMPRODAVCA').AsString:=Form1.Edit1.Text;
 Form1.ADOTable1.FieldByName('NAMEPRODAVCA').AsString:=Form1.Edit3.Text;
 Form1.ADOTable1.FieldByName('DATAZAP').AsString:=DateToStr(Form1.DateTimePicker1.Date);
 Form1.ADOTable1.FieldByName('GOROD').AsString:=Form1.Edit4.Text;
 Form1.ADOTable1.FieldByName('MOBNOMER').AsString:=Form1.Edit2.Text;
 Form1.ADOTable1.FieldByName('SIMKARTA').AsString:=Form1.Edit5.Text;
 Form1.ADOTable1.FieldByName('TARPLAN').AsString:=Form1.Edit6.Text;
 Form1.ADOTable1.FieldByName('USLUGA').AsString:=Form1.Edit7.Text;
 Form1.ADOTable1.FieldByName('DOPNOMER').AsString:=Form1.Edit8.Text;
 Form1.ADOTable1.FieldByName('FAMABONENTA').AsString:=Form1.Edit11.Text;
 Form1.ADOTable1.FieldByName('NAMEABONENTA').AsString:=Form1.Edit12.Text;
 Form1.ADOTable1.FieldByName('OTCHEABONENTA').AsString:=Form1.Edit13.Text;
 Form1.ADOTable1.FieldByName('DATAROGD').AsString:=DateToStr(Form1.DateTimePicker2.Date);
 Form1.ADOTable1.FieldByName('POL').AsString:=Form1.Label30.Caption;
 Form1.ADOTable1.FieldByName('MESTOROGD').AsString:=Form1.Edit14.Text;
 Form1.ADOTable1.FieldByName('PASSPORTSER').AsString:=Form1.Edit15.Text;
 Form1.ADOTable1.FieldByName('PASSPORTNOMER').AsString:=Form1.Edit16.Text;
 Form1.ADOTable1.FieldByName('DATAVYDACHI').AsString:=DateToStr(Form1.DateTimePicker3.Date);
 Form1.ADOTable1.FieldByName('KEMVYDAN').AsString:=Form1.Edit17.Text;
 Form1.ADOTable1.FieldByName('ORGANIZATION').AsString:=Form1.Edit18.Text;
 Form1.ADOTable1.FieldByName('SROKREGISTRACII').AsString:=Form1.Edit19.Text;
 Form1.ADOTable1.FieldByName('OBLAST').AsString:=Form1.Edit20.Text;
 Form1.ADOTable1.FieldByName('GORODPOS').AsString:=Form1.Edit21.Text;
 Form1.ADOTable1.FieldByName('ULICA').AsString:=Form1.Edit22.Text;
 Form1.ADOTable1.FieldByName('DOM').AsInteger:=StrToInt(Form1.Edit23.Text);
 Form1.ADOTable1.FieldByName('KORPUS').AsInteger:=StrToInt(Form1.Edit24.Text);
 Form1.ADOTable1.FieldByName('KVARTIRA').AsInteger:=StrToInt(Form1.Edit25.Text);
 Form1.ADOTable1.FieldByName('EMAIL').AsString:=Form1.Edit26.Text;
// Form1.ADOTable1.Append;
 Form1.ADOTable1.Post;
 Form1.ADOTable1.Refresh;
end;
Попробуй так.
А у тебя в коде таблица после первой вставки записи. Переводиться в режим редактирования
Код:
Form1.ADOTable1.Edit;
, а не добавления.
Отсюда и происходит
Цитата:
то первая затирается второ
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi, ошибка деления на ноль, хотя знаменатель не ноль Эренка Помощь студентам 7 22.04.2010 15:56
Firebird.pFIBQuery.Вставка записи artemavd БД в Delphi 45 28.12.2009 18:47
Paradox вставка записи Append начинающий1 БД в Delphi 3 29.10.2009 07:24
вопрос перед "въездом" в j2ee, стоит ли начинать? новенький_java Общие вопросы по Java, Java SE, Kotlin 3 20.07.2009 03:57