![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема со вставкой данных в базу [D6, Paradox]
Strori © (2005-02-23 12:41:00)Привет всем.
Есть код обработки нажатия на кнопку
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.Query1.Close;
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add('INSERT INTO PostBase (Form) values (тест)');
Form1.Query1.Open;
end;
После компиляции при нажатии на кнопку выдается ошибка BDE "Invalid field name. текст". В чем проблема? Почему "текст" определяется как field name? Которое по идее Form в таблице.
Ольга (2005-02-24 17:28:00) [1]Источником данных DBGrid должен быть Query типа 'SELECT...', а не 'INSERT...'
Anatoly Podgoretsky (2005-02-24 14:13:00) [2]Повторяю Active и Open это эквиваленты и они не применимы. Читай справку по Open и ExecSQL
Strori (2005-02-24 05:29:00) [3]В общем итоговый код
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.Query1.Close;
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add('INSERT INTO PostBase');
Form1.Query1.SQL.Add('(Form)');
Form1.Query1.SQL.Add('values ("'+Form1.Edit3.Text+'")');
Form1.Query1.ExecSQL;
end;
Данные добавляются в базу, но свойство Query1.Active автоматически ставится в false. Как с этим бороться? попытка добавить перед end; строку Form1.Query1.Active:=true; приводит к той же ошибке "Error creating cursor handle".
Strori (2005-02-24 03:25:00) [4]А в какой есть? Чтобы вместо трех была?
Anatoly Podgoretsky (2005-02-23 17:24:00) [5]Если не врешь то книжки эти выкини, а в справке тоже точно нет? Не поверю, что у тебя персональный вариант справки, с купюрами.
DiamondShark (2005-02-23 16:25:00) [6]
> А как DBGrid после этого обновить?
Неужели ни в одной из трёх книжек нету?
Strori (2005-02-23 15:17:00) [7]три книжки есть. такого варианта ни в одной нет. :(
работает, спасибо. А как DBGrid после этого обновить?
Плохиш (2005-02-23 15:05:00) [8]Query1.ExecSQL
Когда будем книжки/справку читать?
Strori (2005-02-23 14:57:00) [9]Project Project1.exe raised exception class ENoResultSet with message "Error creating cursor handle". Пишет после клика на кнопу. :(
DSKalugin (2005-02-23 14:56:00) [10]ошибся для Form не нужны кавычки
P.N.P. (2005-02-23 14:23:00) [11]Form1.Query1.SQL.Add('INSERT INTO PostBase (Form) values (''тест'')');
Плохиш (2005-02-23 14:22:00) [12]Query1.SQL.Add('INSERT INTO PostBase (Form) values (''тест'')');
Strori (2005-02-23 14:19:00) [13]А можно пример? На моём коде? Ставлю одинарные кавычки и на 'Form' и на 'тест' и по отдельности как предложил почтенный DSKalugin - проект не компилится.
Anatoly Podgoretsky (2005-02-23 13:47:00) [14]Значит брать в кавычки данные, с Edit1.Text тоже самое.
Strori (2005-02-23 13:37:00) [15]Form - столбец в таблице базы.
тест - значение, которое нужно вставить в этот столбец...Поле и значение. В оригинале вместо "тест" будет Edit1.Text, но там та же проблема.
Anatoly Podgoretsky (2005-02-23 13:17:00) [16]Я не уверен в этом, не зная сути, что это такое, может это поля
DSKalugin (2005-02-23 13:10:00) [17]точно, Анатолий!
надо взять в одинарные кавычки
('Form') ('тест')
Anatoly Podgoretsky (2005-02-23 12:53:00) [18]Кое кто нам не всю информацию сказал, что такое Form, что такое тест, если литерал, то почему не в кавычках в соответствии с синтаксисом формата и движка. Кто такое этот "текст"?
DSKalugin (2005-02-23 12:51:00) [19]вместо Form1.Query1.Open;
надобно Form1.Query1.ExecSQL;
подробности в хэлпе
procedure ExecSQL;
Description
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL.