Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1109869953
Тимур
2005-03-03 20:12
2005.03.27
Снятие скриншотов кнопкой "Prt Sc SysRq"


14-1110020205
Тимур
2005-03-05 13:56
2005.03.27
Ошибки в ICQ


3-1109418725
jz6
2005-02-26 14:52
2005.03.27
Не работает ОТКАТ в ТРАНЗАКЦИИ


3-1109714894
Arazel
2005-03-02 01:08
2005.03.27
А как сравнить месяц и год в DataField с помощью SQL ?


6-1106804477
ТехникПТО
2005-01-27 08:41
2005.03.27
Copy в WebBrowsere





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский