Главная страница
    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.046 c
3-1109669846
syte_ser78
2005-03-01 12:37
2005.03.27
вычисляемое поле в дбгриде


4-1108371154
Интересующийся
2005-02-14 11:52
2005.03.27
OnKeyDown


3-1109836998
neat
2005-03-03 11:03
2005.03.27
Отследить изменение поля таблицы в DBGrid


1-1110821363
Quattro
2005-03-14 20:29
2005.03.27
проблема с FindFirst


3-1109782180
Bogdan
2005-03-02 19:49
2005.03.27
Как усмерить Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский