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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2009, 00:59   #11
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Может быть я ошибаюсь, но тебе придётся неизбежно поработать с типами в таблице Processor. Одним словом удалить текущую и составить новую, желательно, чтобы были только численный и строковый типы данных.

01:00

Если получится отпишись пож-та.

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Модератор
Всё гениальное - просто!

Последний раз редактировалось mihali4; 15.12.2009 в 01:17.
.Phoenix вне форума Ответить с цитированием
Старый 15.12.2009, 01:13   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Все гораздо проще
При редактировании указано неверное имя поля - "Tip" вместо "DepID"...
Ну, и на всякий случай я все параметры взял в QuotedStr(), ибо просто лень было считать апострофы...
И все прекрасно заработало...

З.Ы. Чуть не забыл немаловажную деталь -
Код:
procedure TForm1.FormCreate(Sender: TObject);
var Str:string;
begin
DecimalSeparator:='.';

Последний раз редактировалось mihali4; 15.12.2009 в 01:15.
mihali4 вне форума Ответить с цитированием
Старый 15.12.2009, 14:00   #13
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

mihali4, благодарю, сделала всё как вы сказали - редактирование работает. Но теперь та же проблема с кнопкой "Новая запись". Ошибка та же, но все поля вроде бы верно указаны...

Не могли бы вы помочь?

И поясните пожалуйста, какие именно параметры нужно заключить в QuotedStr()

Последний раз редактировалось Sianessa; 15.12.2009 в 15:00.
Sianessa вне форума Ответить с цитированием
Старый 15.12.2009, 18:16   #14
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Лююди!! Помогите, у меня перестало работать ошибок не выдаёт, но не создаёт новые записи и не редактирует, т.е. в таблице никаких изменений не происходит! что делать???
Вот что у меня сейчас получилось:
BD.rar
Sianessa вне форума Ответить с цитированием
Старый 15.12.2009, 19:24   #15
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Sianessa Посмотреть сообщение
Поясните пожалуйста, какие именно параметры нужно заключить в QuotedStr()
Код:
     Firma := QuotedStr(Edit1.Text);
     Model := QuotedStr(Edit2.Text);
     Parametr := QuotedStr(Edit3.Text);
     Stoimost := QuotedStr(Edit4.Text);
     DepID := QuotedStr(Edit5.Text);
mihali4 вне форума Ответить с цитированием
Старый 15.12.2009, 19:45   #16
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

mihali4, благодарю, теперь буду знать, как можно без кавычек обойтесь
Да вот только теперь мучаюсь... Ошибок даже не пишет... Но и в таблицу что-то не добавляет ничего... Хотя вроде всё верно...
Sianessa вне форума Ответить с цитированием
Старый 15.12.2009, 19:52   #17
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Взял ваш старый вариант. Привожу полностью обработчик:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var Sql, Param :string ;
    ID, NewID, Firma, Model, Parametr, Stoimost, DepID:string;
begin
     Firma := QuotedStr(Edit1.Text);
     Model := QuotedStr(Edit2.Text);
     Parametr := QuotedStr(Edit3.Text);
     Stoimost := QuotedStr(Edit4.Text);
      DepID := QuotedStr(Edit5.Text);
  if Option = 1 then   //Редактирование
  begin
    ID :=  Form1.Query1.FieldByName('ID').AsString;
    Sql := 'UPDATE  Processor SET ';

    Param := 'Firma='  + Firma      +
        ', Model='     + Model      +
        ', Parametr='    + Parametr    +
        ', Stoimost=' + Stoimost  +
         ', DepID=' + DepID  +
        '  WHERE ID ='+ ID;
  end
  else  //if Option = 2 - Новая запись
  begin
     //Формирование ID для новой записи
     {Query3.SQL.Clear;
     Query3.SQL.Add('Select ID From Processor');
     Query3.Open;
     Query3.Last;
     NewID := IntToStr(Query3.FieldByName('ID').AsInteger +1);}
//дает ошибку - нельзя задавать значение автоинкрементному полю. И это - правда.

     //Формирование SQL-запроса      //
     Sql := 'Insert INTO Processor'+
                 ' (Firma, Model, Parametr, Stoimost, DepID) ';
     Param := 'Values (' + Firma +  ', '
                         + Model +  ', '
                         + Parametr + ', '
                         + Stoimost + ','
                         + DepID + ') ' ;
  end;

   Query3.SQL.Clear;
   Query3.SQL.Add(Sql);
   Query3.SQL.Add(Param);
  ShowMessage(Query3.SQL.GetText); //Для отладки
   Query3.ExecSQL;

         Form1.Query1.Close;
  Form1.Query1.Open;
close;
end;
Все работает.
mihali4 вне форума Ответить с цитированием
Старый 15.12.2009, 20:11   #18
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

mihali4, большое вам спасибо!
Да-а, какая же я не внимательная...
Вопрос закрыт
Sianessa вне форума Ответить с цитированием
Старый 15.12.2009, 21:27   #19
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

mihali4извиняйте, тема закрыта но не до конца... Я вас наверное уже достала с этой ошибкой... Мне по аналогии надо было написать сохранение данных в таблицу Zakaz... Из нижней таблицы формы, в которую происходит выбор...
Опять та же ошибка "Invalid use of keyword" хотя все параметры вроде как верны...
Вот код:

Код:
procedure TForm1.Button6Click(Sender: TObject);
var Sql, Param :string ;
ID, NewID, Firma, Model, Parametr, Stoimost:string;
begin
  
       Firma :=StringGrid1.Cells[1,0];
     Model := StringGrid1.Cells[2,0];
     Parametr :=  StringGrid1.Cells[3,0];
     Stoimost := StringGrid1.Cells[4,0];
     //Формирование SQL-запроса      //
begin

     Sql := 'Insert INTO Zakaz'+
                 ' (Firma, Model, Parametr, Stoimost, NewID) ';
     Param := 'Values (' + Firma +  ', '
                         + Model +  ', '
                         + Parametr + ', '
                         + Stoimost + ','
                         + NewID + ') ' ;
  end;
   Query3.SQL.Clear;
   Query3.SQL.Add(Sql);
   Query3.SQL.Add(Param);
      ShowMessage(Query3.SQL.GetText); //Для отладки
  Query3.ExecSQL;
        Form1.Query1.Close;
  Form1.Query1.Open;

close;

end;

end.
Sianessa вне форума Ответить с цитированием
Старый 15.12.2009, 21:57   #20
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Ну пожаалуйстааа Обещаю что после этого непременно отстану...
Могу даже базу заново прикрепить...
BD.rar
Sianessa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в БД:Invalid use of keyword (Delphi) Zibiv Помощь студентам 5 29.11.2009 10:57
Ошибка EInOutError: Invalid numeric input Croesus Общие вопросы Delphi 1 15.03.2009 08:36
Ошибка C2248. Помогите исправить Ascor Общие вопросы C/C++ 2 03.06.2008 00:56
Видимо ошибка в функции(помогите исправить) GAGARIN-NEW Общие вопросы Delphi 18 07.05.2008 12:30
Ошибка: Invalid value for field... (ADO) Кот из Лета БД в Delphi 5 26.12.2007 14:02