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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 15:47   #1
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию "Пропущен символ(;) в конце инструкции SQL"

Всем привет ребят помогите бьюсь уже неделю над этим запросом
DM.Dop.Active := false;
DM.Dop.SQL.Text := 'INSERT INTO Таблица1(Zn) VALUES (йцу) where name = ''в''';
DM.Dop.Active := true;


уже все способы перепробовал пишет "Пропущен символ( в конце инструкции SQL"
что самое интересное без условия работает а с ним нет
у меня например есть запись о студенте на каком он курсе и все такое к каждому студенту привязана его успеваемость и мне надо в запросе вставить значение в определенный столбец в успеваемость определенного студента
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 15:52   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

инструкция INSERT INTO выполняется БЕЗ условия WHERE,
не нужно путать с UPDATE-ом ... там можно применять WHERE

Код:
DM.Dop.SQL.Text := 'UPDATE таблица1 SET zn = ''йцу'' WHERE name = ''в''';
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...

Последний раз редактировалось Yurk@; 09.04.2013 в 15:55.
Yurk@ вне форума Ответить с цитированием
Старый 09.04.2013, 15:52   #3
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

а как же указать куда именно надо вставить запись
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 15:55   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

при вставке новой записи она добавляется в конец таблицы.
а если делать обновление записи - тогда нужно в условии указывать какие именно записи обновлять

Цитата:
и мне надо в запросе вставить значение в определенный столбец в успеваемость определенного студента
тебе UPDATE нужен
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 09.04.2013, 15:57   #5
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

смотрите по клике на кнопку я перевожу группу в на другой семестр у меня копируются все студенты со всеми данными и с семестром например 2
а в успеваемость каждого из них вставляются предметы из таблицы предметы со 2 семестром мне именно вставить предметы надо
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 15:58   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

она вставится куда надо даже и без условия
eval вне форума Ответить с цитированием
Старый 09.04.2013, 15:59   #7
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

ну ок щас пробанем заранее спасибо
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 16:04   #8
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
у меня копируются все студенты со всеми данными и с семестром например 2
здесь неплохо было бы как-то так
Код:
INSERT INTO tablitca (<список полей>) 
SELECT <список полей> FROM tablitca WHERE semestr = 1 AND gruppa = 'a'
Цитата:
а в успеваемость каждого из них вставляются предметы из таблицы предметы со 2 семестром
решение аналогично первому
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 09.04.2013, 16:36   #9
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

я беру их базы студнетов на данном курсе например на 1 их всех копирую и вставляю заново с новыми успеваемостями и в этих успеваемостях нету предметов поэтому нечего и обновлять а мне нужно вставить в эти успеваемости предметы которые я возьму из таблицы предметы тоесть те которые идут на этом семестре именно
так что обновлять тут нечего мне
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 16:46   #10
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

не знаю вот так делаю то есть сразу после добавления студента добавляю предметы
но он добавляет предметы последнему студенту в групп на предыдущем семестре
procedure TVedomostForm.Button2Click(Sender: TObject);
var
sem,spec:integer;
i,j:integer;
begin
sem := 0;
//Выбор предметов для прикрепления к переведенной группе
sem := StrToInt(Label7.Caption) +1;
DM.Dop.Active := false;
DM.Dop.SQL.Text := 'Select Предмет,Диплом From Предмет Where Специальность = '''+
Label6.Caption+''' and Семестр = '''+IntToStr(sem)+'''';
DM.Dop.Active := true;
//Считываение id с грида выбор студентов и перезапись с новым значением семестра
for str := 1 to AdvStringGrid1.RowCount-2 do
begin
DM.QVed.Active := false;
DM.QVed.SQL.Text := 'Select * From Перекрестный Where id = '+
AdvStringGrid1.Cells[0,str];
DM.QVed.Active := true;
DM.Spisok.Insert;
DM.Spisok.FieldByName('Фамилия').As String := DM.QVed.FieldByName('Фамилия').AsSt ring;
DM.Spisok.FieldByName('Имя').AsStri ng := DM.QVed.FieldByName('Имя').AsString ;
DM.Spisok.FieldByName('Отчество').A sString := DM.QVed.FieldByName('Отчество').AsS tring;
DM.Spisok.FieldByName('Специальност ь').AsString := DM.QVed.FieldByName('Специальность' ).AsString;
DM.Spisok.FieldByName('Семестр').As String := IntToStr(StrToInt(DM.QVed.FieldByNa me('Семестр').AsString) + 1);
DM.Spisok.FieldByName('Группа').AsS tring := DM.QVed.FieldByName('Группа').AsStr ing;
DM.Spisok.Post;
DM.QVed.Active := true;
DM.Dop.First;
while not DM.Dop.Eof do
begin
DM.Uspev.Insert;
DM.Uspev.FieldByName('Предмет').AsS tring := DM.Dop.FieldByName('Предмет').AsStr ing;
DM.Uspev.FieldByName('Диплом').AsSt ring := DM.Dop.FieldByName('Диплом').AsStri ng;
DM.Uspev.Post;
DM.Dop.Next;
end;
end;
{//выбор id студентов для прикрепления предметов
DM.QVed.Active := false;
DM.QVed.SQL.Text := 'Select id From Перекрестный Where Специальность = '''+
Label6.Caption+''' and Семестр = '''+IntToStr(sem)+'''';
DM.QVed.Active := true;
DM.QVed.First;
for i := 0 to 2 do
begin
AdvStringGrid3.Cells[0,i] := DM.QVed.FieldByName('id').AsString;
DM.QVed.Next;
end;}
{
//Приикрепление предметов к переведенным студентам
DM.QVed.First;
while not DM.QVed.Eof do
begin
DM.Dop.First;
while not DM.Dop.Eof do
begin
DM.Dop2.Active := false;
DM.Dop2.SQL.Text := 'Update Успеваемость Set Предмет = '+
DM.Dop.FieldByName('Предмет').AsStr ing+' and Диплом = '+
DM.Dop.FieldByName('Диплом').AsStri ng+' where Код_студента = '+
DM.QVed.FieldByName('id').AsString;
DM.Dop2.ExecSQL;
DM.Dop.Next;
end;
DM.QVed.Next;
end;}
end;
sashkap вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организовать текстовый файл f, состоящий из N строк. Организовать замену символов в файле. "Старый" символ и "новый" символ запраш Richik123 Паскаль, Turbo Pascal, PascalABC.NET 1 14.06.2012 16:28
Организовать текстовый файл f, состоящий из N строк. Организовать замену символов в файле. "Старый" символ и "новый" символ запра Richik123 Паскаль, Turbo Pascal, PascalABC.NET 0 31.05.2012 17:32
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51