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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2012, 18:42   #1
Gy9vin
 
Регистрация: 28.11.2011
Сообщений: 7
По умолчанию DBGrid добовление новых строк в таблицу через Edit1.text таблица Access

Добрый день! вот у меня возник вопрос как реализовать добавление строки в dbgrid через edit1.text в программе есть столбцы как номер поезда откуда куда время цена билета и пр.... многие варианты предложенные в интернете либо не работают выдавая ошибку либо пашет через sql запросы но у меня access таблица... Очень прошу вашей помощи!!!
Вложения
Тип файла: rar Курсач.rar (729.3 Кб, 8 просмотров)
Gy9vin вне форума Ответить с цитированием
Старый 03.06.2012, 18:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
многие варианты
Показывай как пробовал )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2012, 19:40   #3
Gy9vin
 
Регистрация: 28.11.2011
Сообщений: 7
По умолчанию

Код:
ADOQuery1.Active:=false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text :=  Format('INSERT INTO Поезда');
ADOQuery1.SQL.Text :=  Format('(Номер поезда,Отправление из,Прибытие в)');
ADOQuery1.SQL.Text :=  Format('VALUES("'+ Edit1.Text +'",'+Edit2.Text+','+ Edit3.Text+')');
ADOQuery1.ExecSQL;

Последний раз редактировалось Stilet; 03.06.2012 в 19:52.
Gy9vin вне форума Ответить с цитированием
Старый 03.06.2012, 19:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
with ADOQuery1 do begin
 SQL.Text :=  'INSERT INTO Поезда (Номер поезда,Отправление из,Прибытие в) '+
  'VALUES('+QuotedStr(Edit1.Text) +','+Edit2.Text+','+ Edit3.Text+')';
 if ExecSQL=0 then ShowMessage('Команда не выполнилась. Запись не вставлена');
end;
Тебе там Format вообще ни к чему. Де ты только его выдрал?
По крайней мере составление запроса совсем по другому делается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2012, 19:56   #5
Gy9vin
 
Регистрация: 28.11.2011
Сообщений: 7
По умолчанию

если бы это sql это Access там вроде по другому команда будет или я ошибаюсь
Gy9vin вне форума Ответить с цитированием
Старый 03.06.2012, 19:58   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Лучше параметризированній, да и имена полей в кв.скобки взять
Код:
ADOQuery1.SQL.Text:=Format('INSERT INTO Поезда ([Номер поезда],[Отправление из],[Прибытие в]) VALUES(:Nomer,:Otpr,:Prib)');
ADOQuery1.Parameters.ParamByName('Nomer').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('Otpr').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('Prib').Value:=Edit3.Text;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.06.2012, 20:03   #7
Gy9vin
 
Регистрация: 28.11.2011
Сообщений: 7
По умолчанию

в архиве таблица и пример программы на примере кода покажите
Столбцы так и называются: номер поезда, отправление из, прибытие в и тд....

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
with ADOQuery1 do begin
 SQL.Text :=  'INSERT INTO Поезда (Номер поезда,Отправление из,Прибытие в) '+
  'VALUES('+QuotedStr(Edit1.Text) +','+Edit2.Text+','+ Edit3.Text+')';
 if ExecSQL=0 then ShowMessage('Команда не выполнилась. Запись не вставлена');
end;
Тебе там Format вообще ни к чему. Де ты только его выдрал?
По крайней мере составление запроса совсем по другому делается.
пишет ошибка синтаксиса INSERT INTO

Цитата:
Сообщение от Аватар Посмотреть сообщение
Лучше параметризированній, да и имена полей в кв.скобки взять
Код:
ADOQuery1.SQL.Text:=Format('INSERT INTO Поезда ([Номер поезда],[Отправление из],[Прибытие в]) VALUES(:Nomer,:Otpr,:Prib)');
ADOQuery1.Parameters.ParamByName('Nomer').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('Otpr').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('Prib').Value:=Edit3.Text;
на это пишет вот такое

Код:
[DCC Error] Unit2.pas(52): E2250 There is no overloaded version of 'Format' that can be called with these arguments
[DCC Fatal Error] F2063 Could not compile used unit 'Unit2.pas'

Последний раз редактировалось Stilet; 03.06.2012 в 21:57.
Gy9vin вне форума Ответить с цитированием
Старый 03.06.2012, 21:46   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Убери Format, я его содрал с кода и забыл удалить
Код:
ADOQuery1.SQL.Text:='INSERT INTO Поезда ([Номер поезда],[Отправление из],[Прибытие в]) VALUES(:Nomer,:Otpr,:Prib)';
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление новых записей через DBGrid, DataSource и ZTable Leximus БД в Delphi 3 25.10.2011 08:04
Невозможность добавления новых данных в таблицу Access BlackWhyT Помощь студентам 0 24.12.2010 18:25
Создание новых таблиц в Access через Delphi mopozoff БД в Delphi 25 05.12.2009 20:18
Добовление в таблицу access girz БД в Delphi 11 08.06.2009 17:13
y=Edit1->Text ??? m.a.x.i.m Помощь студентам 8 31.03.2008 11:29