![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Лишняя запись в БД и ошибка (Pascal)
zigzac © (2014-05-24 11:05:00)Всем привет!!!!!!!!!!!!!!
У меня 2 вопроса:
1. Почему ответ следующего столбика добавляется в запись на строчку ниже, а не в одну запись(строчку)?
Проблема в том , что получается нужны ответ в другой записи и цикл его не считает.
Так я зачисляю в ячейки значения :
procedure TForm1.Button1Click(Sender: TObject);
var
A:Integer;
begin
if edit1.Text='' then
exit ;
A:=StrToInt(Edit1.Text);
if A=4 then
begin
ADOTable1.Open;
ADOTable1.Insert;
ADOTable1.FieldByName('1').AsString:='2';
ADOTable1.Post;
ADoTable1.Close;
form1.Hide;
form2.Show;
end
else
begin
form1.Hide;
form2.Show
end;
end;
И вот так :
procedure TForm5.Button1Click(Sender: TObject);
var
A:String;
begin
if edit1.Text='' then
exit ;
if edit1.Text='чемодан' then
begin
ADOTable1.Open;
ADOTable1.Append;
ADOTable1.FieldByName('3').AsString:='2';
ADOTable1.Post;
form5.Hide;
form6.Show;
end
else
begin
form5.Hide;
form6.Show
end;
end;
2. Такая ошибка :
.............could not convert variant of type null into type integer.
Это когда цикл суммирует ответы(они не нулевые)(но лесенкой)(в каждой строке по ячейке=2,остальные =0)
procedure TForm43.Button1Click(Sender: TObject);
var
k,i:integer;
begin
k:=0;
for I := 1 to 40 do k:=k+adotable1.Fields.Fields[i].Value;
label2.caption:=IntToStr(k)
end;
end.
Спасибо.
turbouser (2014-05-24 18:55:00) [21]
> zigzac © (24.05.14 18:19) [5]
исходники будут? задолбало уже угадывать что там студиозусы накодили..
zigzac (2014-05-24 18:19:00) [22]У меня 40 форм с вопросами. На каждой форме вводиш ответ в edit и нажимаеш buttun. открывается новая форма с вопросом и там разница либо ответ string или integer. в бд 40 полей от 1 до 40.при правильном ответе зачисляем 2 в столбец с номером вопроса. а в конце при нажатии на кнопку с помощью цикла суммируем результат.
3 кода выше привязанных к событию нажатия кнопки. больше ниче не прписывал. проблема в том что цикл считает из первой записи .....
turbouser (2014-05-24 17:18:00) [23]
> zigzac © (24.05.14 15:17) [3]
насчет второго - Fields[i].Value у тебя там NULL есть. сопсна, текст ошибки о том и говорит. есть такие свойства у филда, как isnull (не помню точно.. нет инструментов под рукой :))
первое - инсерт и аппенд - добавление. если при едит у тебя появляются дубли - то тут уж никто не поможет до тех пор пока весь код не приведешь.
zigzac (2014-05-24 15:17:00) [24]чем insert в моем случае заменить? Edit ставлю то же самое.
Плохиш (2014-05-24 11:25:00) [25]
> Это когда цикл суммирует ответы(они не нулевые)
Ты сообщению об ошибке верь, оно не обманывает ибо не умеет.
Плохиш (2014-05-24 11:23:00) [26]
> 1. Почему ответ следующего столбика добавляется в запись
> на строчку ниже, а не в одну запись(строчку)?
Если я правильно понял сей бред, то пора прочитать справку по insert.