Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.02.2009, 12:48
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию ЗАпрос

Сил больше нет...
пытаюсь занести в таблу запросом
Код:
 form1.adoquery1.sql.add('insert INTO Ïîëüçîâàòåëè set name='+quotedstr(Edit6.text)+',Fam='+quotedstr(edit7.text)+',EMAIL='+quotedstr(edit8.text)+',ID='+inttostr(s));
но получаю ошибку что типо cannot perform on clossed dataset
или просто с грида все удаляется и в бд ниче не заноситься..
или пишет ошибку
Project server.exe raised exception class EDatabaseError with message'ADOquery1
Ответить с цитированием
  #2  
Старый 08.02.2009, 21:43
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

эта тема обсуждалась!!! ))
http://www.delphisources.ru/forum/showthread.php?t=6856
Ответить с цитированием
  #3  
Старый 08.02.2009, 21:44
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

а вот запрос на добавление

Код:
Add.Sql.clear;
Add.SQL.Add('INSERT INTO дисциплина (фио,дисциплина,тема,группа)');
Add.SQL.Add('VALUES ('''+Label7.Caption+''','''+Edit1.Text+''','''+Edit2.text+''','''+Edit3.text+''')');
Add.ExecSQL;
Ответить с цитированием
  #4  
Старый 08.02.2009, 22:31
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

если скажешь как же так просто засунуть в едит например значение поля имя из таблы я те телку сисястю подарю (:
Ответить с цитированием
  #5  
Старый 08.02.2009, 22:41
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

может тебе просто использовать DBLookupComboBox или DBEdit
Ответить с цитированием
  #6  
Старый 08.02.2009, 23:34
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Если сможешь отписать в асю то буду примногом благодарен 4713649292
Ответить с цитированием
  #7  
Старый 09.02.2009, 22:00
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

А вот в теме которая обсуждалась я ничерта не поняол ...не обьясните для дураков?
Ответить с цитированием
  #8  
Старый 09.02.2009, 22:09
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Цитата:
Сообщение от жекаизжека
а вот запрос на добавление

Код:
Add.Sql.clear;
Add.SQL.Add('INSERT INTO дисциплина (фио,дисциплина,тема,группа)');
Add.SQL.Add('VALUES ('''+Label7.Caption+''','''+Edit1.Text+''','''+Edit2.text+''','''+Edit3.text+''')');
Add.ExecSQL;

И на это пишет ошибка синтаксиса в инструкции INSERT INTO..
У меняя это выглядит примерно вот так
Код:
ADOQUERy1.Sql.clear;
ADOQuery1.SQL.Add('INSERT INTO Users (Fam,E-mail)');
ADOQuery1.SQL.Add('VALUES ('''+edit2.text+''','''+Edit3.text+''')');
ADOQuery1.ExecSQL;
Ответить с цитированием
  #9  
Старый 10.02.2009, 15:21
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

перед VALUES пробел поставь и точку с запятой в конце запроса
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #10  
Старый 11.02.2009, 15:05
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Все равно та же самая ошибка ...
Попробывал вот так
Код:
form1.ADOQuery1.Insert;
  form1.ADOQuery1Name.AsString:=Edit1.Text;
  form1.ADOQuery1Fam.AsString:=Edit2.Text;
  form1.ADOQuery1Email.AsString:=Edit3.Text;

  form1.ADOQuery1.Post;
пишет зловещую ошибку cannot perform this operation on a close datta set
Что это за ошибка как ее исправить ?если я ошибаюсь в хапросе составьте запрос котрый по вашему мнению 100% прокатит и я попробую...
Ответить с цитированием
  #11  
Старый 11.02.2009, 16:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

нормальная ошибка. Прежде чем вызывать методы редактирования датасета надо его сначала открыть. Т.е. основной запрос д.б. с SELECT'ом и квере надо сделать Active := True или вызвать метод Open.
Ну и для того, что бы можно было ее, кверю, упдейтить/инсертить, надо либо поставить ей свойство RequireAlive в True (для простых запросов), либо использовать соответсвующий компонент с шаблонами команд на добавление/обновление/удалени строк.
Ответить с цитированием
  #12  
Старый 11.02.2009, 22:43
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

С занесением данных в таблу проблем нету..Зато тепер проблема с апдейтом...пытаюсь апдейтнуть
Код:
if  AdoTable1.Locate(ffield, fvalue, opts) then
begin
showmessage(fvalue + '  found in ' + ffield);
form1.ADOQuery1.Open;
form1.ADOQuery1.sql.add('UPDATE from Users Set Fam='+quotedstr(edit3.text)+' where Name='+quotedstr(edit1.text));
form1.adoquery1.post;
пишет что adoquery1 :dataset not in edit or insert mode;
не в режиме изменения я так понял?
Майкл расскажи плиз где это свойство у квери которое надо поставить в true?я ненашел...
и шаблонны команд..это типа переменной записывается текст(запрос)и отправляют переменную?я примерно так понял?
и напрмиер какой компонент поюзать для апа?

Последний раз редактировалось Booo, 11.02.2009 в 22:47.
Ответить с цитированием
  #13  
Старый 11.02.2009, 23:10
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

ну во-первых не "UPDATE FROM таблица", а "UPDATE таблица SET поле='значение' AND поле2='значение2' ... WHERE индекс='значение3' AND индекс2='значение4' ... LIMIT макс_кол-во_измененных_записей; "
во-вторых у ADOTable(вроде) должен быть параметр типа ReadOnly, который и отвечает за то, можно ли изменять БД
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #14  
Старый 18.02.2009, 18:06
Аватар для GorMax
GorMax GorMax вне форума
Прохожий
 
Регистрация: 17.11.2008
Сообщения: 15
Репутация: 10
Хорошо

Цитата:
Сообщение от жекаизжека
а вот запрос на добавление

Код:
Add.Sql.clear;
Add.SQL.Add('INSERT INTO дисциплина (фио,дисциплина,тема,группа)');
Add.SQL.Add('VALUES ('''+Label7.Caption+''','''+Edit1.Text+''','''+Edit2.text+''','''+Edit3.text+''')');
Add.ExecSQL;
Спасибо, мне это помогло... всё работает правильно, ошибок пока не выдает =)
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025