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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2015, 17:33   #1
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию Запрос SQL на добавление записи

Помогите пожалуйста написать запрос, при котором по нажатии кнопки в таблице создаются записи, количеством, указанным в Edit, при этом чтобы поле Номер заполнялось соответственно 1, 2, 3.. и так до значения в Edit. Использую ADODataSet, DataSource, база в Access
Marla14 вне форума Ответить с цитированием
Старый 29.05.2015, 09:43   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

1) добавляем на форму ADOCommand: TADOCommand;
2) настраиваем его с помощью ADOConnection на работу с нужной БД
3) заполняем свойство СommandText
Код:
insert into <здесь надо указать имя таблицы> ([номер]) values (:nn)
ЭТО будет запрос реализующий добавление записей с параметром
Цитата:
при этом чтобы поле Номер заполнялось
3) пишем работу по нажатием кнопки
Код:
N:=StrToInt(Edit1.Text); //какое число мы ввели ?
for i:=1 to N do begin // заполнялось соответственно 1, 2, 3.. и так до значения в Edit.
  ADOCommand.Parameters.ParameterByName('nn').value:=i;//указание конкретных значений параметра
  ADOCommand.Execute; // ВЫПОЛНЕНИЕ запроса с установленными значениями
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 29.05.2015 в 09:45.
evg_m вне форума Ответить с цитированием
Старый 29.05.2015, 10:58   #3
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Спасибо, теперь хоть понимаю как писать запрос для ADOCommand, но все равно не работает почему то, ни одной записи не добавляет(
Marla14 вне форума Ответить с цитированием
Старый 29.05.2015, 11:30   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
не работает почему то, ни одной записи не добавляет(
Как было это замечено?
Выполнятся ли вообще код ?
Если да, то есть ли какие либо сообщения об ошибках ?
Если открыть непосредственно Acssess записи есть (те которые добавляли) ?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.05.2015, 11:33   #5
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Ошибок в коде не возникает, при этом в БД Access записи создаются а вот в Dataset нет, думаю это из за того что таблица подчиненная возможно
Marla14 вне форума Ответить с цитированием
Старый 29.05.2015, 11:38   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
а вот в Dataset нет,
чтобы увидеть после добавления, надо закрыть и заново открыть тот набор данных, где мы хотим увидеть.
Код:
dataSet.close;
dataSet.Open;
Набор данных это фотография БД.
Мы сфотографировали листок с текстом. (получили набор данных)
Дописали на листке новый текст (выполнили команду добавления)
Как нам увидеть этот новый текст на фотографии ?
Сделать новую фотографию. (переоткрыть НД).
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 29.05.2015 в 11:44.
evg_m вне форума Ответить с цитированием
Старый 29.05.2015, 11:46   #7
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Все равно нет(
Marla14 вне форума Ответить с цитированием
Старый 29.05.2015, 11:53   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Все равно нет(
ВСЕ ADODataSet и все ADOcommand должны быть настроены на ОДИН единственный ADOConnection (для всей программы)
без всяких СonnectionString в них самих.
http://programmersforum.ru/showpost....4&postcount=18

или же добавлять сразу в этот набор данных не всегда это удастся
Код:
for i:=1 to N do begin
  ADODataSet1.Insert();
  ADODataSet1.FieldByName('номер').value:=i; 
  ADODataSet1.Post();
end;
Да и проблема как увидеть новые данные в других наборах данных от этого никуда не исчезнет.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 29.05.2015 в 12:11.
evg_m вне форума Ответить с цитированием
Старый 29.05.2015, 11:56   #9
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Все так и есть, все настроено через Connection на один единственный ADOConnection1

Добавление не через запрос, тоже не работает, помогите разобраться, почему записи не добавляются в DataSet, а только в таблицу Access, может я Close, Open не туда пишу, хотя куда не напишешь ни как не работает
Код:
i, N: integer;
begin
N:=StrToInt(Edit1.Text);
for i:=1 to N do begin
DM.ExDS.Close;
  DM.ADOCommand1.Parameters.ParamByName('nn').value:=i;
  DM.ADOCommand1.Execute;
  DM.ExDS.Open;
end;

Последний раз редактировалось Stilet; 29.05.2015 в 21:10.
Marla14 вне форума Ответить с цитированием
Старый 29.05.2015, 18:52   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Номер заполнялось соответственно 1, 2, 3.. и так до значения в Edit
Удивительно зачем все это ? Для чего есть в Access счетчик ? Marla14 скажите пожалуйста вам надо уникальные поля ? почему не счетчик ?

Последний раз редактировалось xxbesoxx; 29.05.2015 в 18:56.
xxbesoxx вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить наличие записи с через SQL запрос Dux БД в Delphi 19 23.08.2015 03:42
удаление записи в dbgrid через sql запрос delphi IsmaiLka БД в Delphi 6 08.07.2014 23:19
SQL. Добавление в таблицу записи Dushkanyara БД в Delphi 0 18.10.2010 13:59
ADO.NET: VS 2005 C# + Sql server express: добавление записи в таблицу kostyan23 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 02.03.2010 14:04
Запрос на добавление записи в Delphi disaer Помощь студентам 5 09.11.2009 12:07