Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизПроблема со вставкой данных в базу Найти похожие ветки
← →
Strori (2005-02-23 12:41) [0]Привет всем.
Есть код обработки нажатия на кнопку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 в таблице.
← →
DSKalugin © (2005-02-23 12:51) [1]вместо 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.
← →
Anatoly Podgoretsky © (2005-02-23 12:53) [2]Кое кто нам не всю информацию сказал, что такое Form, что такое тест, если литерал, то почему не в кавычках в соответствии с синтаксисом формата и движка. Кто такое этот "текст"?
← →
DSKalugin © (2005-02-23 13:10) [3]точно, Анатолий!
надо взять в одинарные кавычки
("Form") ("тест")
← →
Anatoly Podgoretsky © (2005-02-23 13:17) [4]Я не уверен в этом, не зная сути, что это такое, может это поля
← →
Strori (2005-02-23 13:37) [5]Form - столбец в таблице базы.
тест - значение, которое нужно вставить в этот столбец...Поле и значение. В оригинале вместо "тест" будет Edit1.Text, но там та же проблема.
← →
Anatoly Podgoretsky © (2005-02-23 13:47) [6]Значит брать в кавычки данные, с Edit1.Text тоже самое.
← →
Strori (2005-02-23 14:19) [7]А можно пример? На моём коде? Ставлю одинарные кавычки и на "Form" и на "тест" и по отдельности как предложил почтенный DSKalugin - проект не компилится.
← →
Плохиш © (2005-02-23 14:22) [8]Query1.SQL.Add("INSERT INTO PostBase (Form) values (""тест"")");
← →
P.N.P. © (2005-02-23 14:23) [9]Form1.Query1.SQL.Add("INSERT INTO PostBase (Form) values (""тест"")");
← →
DSKalugin © (2005-02-23 14:56) [10]ошибся для Form не нужны кавычки
← →
Strori (2005-02-23 14:57) [11]Project Project1.exe raised exception class ENoResultSet with message "Error creating cursor handle". Пишет после клика на кнопу. :(
← →
Плохиш © (2005-02-23 15:05) [12]Query1.ExecSQL
Когда будем книжки/справку читать?
← →
Strori (2005-02-23 15:17) [13]три книжки есть. такого варианта ни в одной нет. :(
работает, спасибо. А как DBGrid после этого обновить?
← →
DiamondShark © (2005-02-23 16:25) [14]
> А как DBGrid после этого обновить?
Неужели ни в одной из трёх книжек нету?
← →
Anatoly Podgoretsky © (2005-02-23 17:24) [15]Если не врешь то книжки эти выкини, а в справке тоже точно нет? Не поверю, что у тебя персональный вариант справки, с купюрами.
← →
Strori (2005-02-24 03:25) [16]А в какой есть? Чтобы вместо трех была?
← →
Strori (2005-02-24 05:29) [17]В общем итоговый код
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".
← →
Anatoly Podgoretsky © (2005-02-24 14:13) [18]Повторяю Active и Open это эквиваленты и они не применимы. Читай справку по Open и ExecSQL
← →
Ольга (2005-02-24 17:28) [19]Источником данных DBGrid должен быть Query типа "SELECT...", а не "INSERT..."
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.041 c