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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 12:14   #1
foravastxxx
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 14
По умолчанию Добавление в конец списка DBGrid

есть база данных на sql сервере, нужно кнопкой добавить данные в таблицу.
данный текст добавляет, но только в самую первую строчку, причем меняет её.
Подскажите пожалуйста как сделать что добавлялась строка в конец базы, все это выводиться Db Gred.
Код на кнопку:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
e1,e2,e3: string;
begin
MSQuery1.Insert;
MSQuery1.SQL.Clear;
e1:=DBEdit1.EditText;e2:=DBEdit2.EditText;e3:=DBEdit3.EditText;
MSQuery1.SQL.Add('INSERT INTO Sotrudnik (ФИО,Кабинет,Телефон)');
MSQuery1.SQL.Add('VALUES (e1,e2,e3)');
MSQuery1.Post;
MSQuery1.ExecSQL;
MSQuery1.Cancel;
end;
Также выдает ошибку при нажатии, данные в базе не сохраняет.

Последний раз редактировалось Stilet; 27.02.2012 в 17:04.
foravastxxx вне форума Ответить с цитированием
Старый 27.02.2012, 13:24   #2
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

А вы сами понимаете что здесь написано?
Код:
MSQuery1.Insert;
MSQuery1.SQL.Clear;
e1:=DBEdit1.EditText;e2:=DBEdit2.Ed itText;e3:=DBEdit3.EditText;
MSQuery1.SQL.Add('INSERT INTO Sotrudnik (ФИО,Кабинет,Телефон)');
MSQuery1.SQL.Add('VALUES (e1,e2,e3)');
MSQuery1.Post;
MSQuery1.ExecSQL;
MSQuery1.Cancel;
Распишите что делает каждая строка вашего кода.
Он абсолютно не правильный. В нем куча лишнего.
Когда распишите само поймете, что здесь лишнее.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 27.02.2012, 13:28   #3
foravastxxx
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 14
По умолчанию

Да, неспорю много лишнего,я пока только начал разбираться, вот только это не влияет на то что в DbGrid добавляет в первую строку, может все таки что нибудь посоветуете именно по этому вопросу. Чтоб в таблицу имеено в конец добавлялась строка , ну и сохранялась.Спасибо.
foravastxxx вне форума Ответить с цитированием
Старый 27.02.2012, 13:33   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Что за СУЬД?
Как получаете данные?
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 27.02.2012, 13:36   #5
foravastxxx
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 14
По умолчанию

база написана на sql servere, использую в delphi компоненты SQL Server Access, в саму таблицу DbGride я данные вывожу. нужно просто чтоб пользователь вводит данные в Dbedit и по кнопке соответственно они записывались в базу в конец базы, ну и отображалиcm в DbGride
foravastxxx вне форума Ответить с цитированием
Старый 27.02.2012, 13:40   #6
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Что вы подразумеваете под
Цитата:
в конец базы,
?
И я еще раз спрашиваю. Как вы получаете набор данных на клиента?
Table или запрос?
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 27.02.2012, 13:44   #7
foravastxxx
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 14
По умолчанию

1. в плане чтоб строка в таблице снизу добавлялась, в настоящее время она просто заменяет первую и не сохраняется.
2. набор данных для клиента вводятся вручную в строках. их и нужно сохранить(или я туплю)
foravastxxx вне форума Ответить с цитированием
Старый 27.02.2012, 14:02   #8
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Тупите! Вы данные в грид, в который якобы должно добавляться в конец как выводите набор данных.
Уберите все DBEdit'ы заменив их на Edit'ы.
Приведите код к виду
Код:
e1:=Edit1.Text;e2:=Edit2.Text;e3:=Edit3.Text;
MSQuery1.SQL.Add('INSERT INTO Sotrudnik (ФИО,Кабинет,Телефон)');
MSQuery1.SQL.Add('VALUES (' +QuotedStr(e1)+','QuotedStr(e2)+','+QuotedStr(e3)+')');
MSQuery1.ExecSQL;
Почитайте о запросах с параметрами.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 27.02.2012, 14:12   #9
foravastxxx
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 14
По умолчанию

Так он вообще ничего не сохраняет, и ошибка "MSQuery1:Cannot perform this operation on a closed dataset".
foravastxxx вне форума Ответить с цитированием
Старый 27.02.2012, 14:19   #10
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Полный код выкладывайте. Не может быть такой ошибки. Т.к. запросы на вставку, обновление, удаление не требуют открытия датасета.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление в конец списка определённых ячеек после нажатия на кнопку Diamondik Microsoft Office Excel 12 19.04.2011 16:44
Добавление информации в конец jpeg файла HarleyDavidson Общие вопросы C/C++ 0 06.02.2010 15:32
Процедура добавления данных в конец двунаправленного списка. qwertytol Помощь студентам 1 06.12.2009 16:56
Нижний конец списка в ListBox VadEr Компоненты Delphi 3 10.09.2009 12:06
Добавление списка в меню ГОСЕАН БД в Delphi 5 15.07.2007 13:34