Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Проблема со вставкой данных в базу   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
14-1109578732
Tornado
2005-02-28 11:18
2005.03.27
Не работает Windows Update


3-1109330164
Inoemy
2005-02-25 14:16
2005.03.27
Как взять значение DataSet по заданному номеру строки грида?


6-1106435345
Xan
2005-01-23 02:09
2005.03.27
Передача данных по интернет


14-1109939978
Sicilla
2005-03-04 15:39
2005.03.27
Adware


3-1109747601
Мила
2005-03-02 10:13
2005.03.27
Обрезается поле nvarchar в MSSQL