Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
ВнизБД, ошибка добавления Найти похожие ветки
← →
cardexc (2006-04-20 17:36) [0]Здравствуйте, у меня по мере создания программы, возник один глупый вопрос, решить который неполучается =(
Возможно ("полюбому") было уже обсуждение этого, но я ненашел
При добавлении новой записи в БД появляется следующее
Access violation ..... Invalid field name. Text ....
Form1.Query1.SQL.Clear ();
Form1.Query1.SQL.Add("INSERT INTO Main (Name) Values (TName.Text)");
Form1.Query1.ExecSQL;
БД парадокс7, TName -- TEdit
← →
Мефисто (2006-04-20 17:44) [1]>> Invalid field name
Интерсно, как оно переводится?
Может что-то с именем поля?
← →
cardexc (2006-04-20 17:57) [2]Как переводиться понятно, и что с ним не так ?
TName (TEdit) существует...
← →
vovnuke © (2006-04-20 18:04) [3]
> Form1.Query1.SQL.Add("INSERT INTO Main (Name) Values (TName.Text)");
???
← →
cardexc (2006-04-20 18:12) [4]vovnuke:
Не совсем понял вопрос....
← →
vovnuke © (2006-04-20 18:27) [5]как ты думаешь что у тебя подставляется в запрос вместо
> TName.Text
← →
cardexc (2006-04-20 18:44) [6]Хотелось бы конечно чтобы там оказалась строка, которая находиться в TName.Text ...
← →
vovnuke © (2006-04-20 18:51) [7]ну тогда я бы поробовал вынести TName.Text из кавычек, или что будет более правильным, использовать в запросе параметры.
А так вообще не плохо почитать чего нибудь (на будущее).
← →
cardexc (2006-04-20 18:56) [8]понятно, спасибо, буду пробовать
чего нибудь почитал, не помогло :)
← →
cardexc (2006-04-20 20:01) [9]кстати кавычки непричем, при ручном добавлении такой же ерор
← →
Мефисто (2006-04-20 20:14) [10]>> ("INSERT INTO Main (Name) Values (TName.Text)");
Присвой временной стринговой переменной и посмотри результат под отладчиком. Или выведи результат формирования этой строки куданибудь. Наглядно сам все и увидишь, чего и где.
← →
Мефисто (2006-04-20 20:14) [11]>> ("INSERT INTO Main (Name) Values (TName.Text)");
Присвой временной стринговой переменной и посмотри результат под отладчиком. Или выведи результат формирования этой строки куданибудь. Наглядно сам все и увидишь, чего и где.
← →
cardexc (2006-04-20 21:34) [12]При присвоении временной стринговой переменной ругаеться на нее
>Invalid field name. имя переменной ....
← →
Anatoly Podgoretsky © (2006-04-20 21:47) [13]Удали все поля созданые в дизайн-тайм
← →
Мефисто (2006-04-20 21:52) [14]cardexc (20.04.06 21:34) [12]
Намек был на то, чтобы ее не стразу в Query1.SQL.Add() вставить, а посмотреть во время отладки значение даннй переменной. Т.е. итоговая строка получилась именно та что задумывалась или нет.
MyStr := "INSERT INTO Main (Name) Values (" + TName.Text + ")";
На проверку, существует ли поле "Name" и соответсвет ли введенное значение "TName.Text" типу данных поля "Name".
← →
cardexc (2006-04-20 21:54) [15]Спасибо, попробую
← →
cardexc (2006-04-20 22:14) [16]Я просто вместо этого написал вручную в свойство Query ту строку, и получил опять ету ошибку
Поле нейм существует, и типы совпадают ...
При попытке удалить созданые поля, случилось то что я и боялся.. у меня таблицы связаны, связь один ко многим, т.е. пытаюсь удалить, он мне говорит что-то типа: Нельзя так удалять, исп. связь master-detail
Удалял я обычным способом
With MainTable do while not EOF do
delete ;
← →
Мефисто (2006-04-20 22:24) [17]cardexc (20.04.06 22:14) [16]
Всетаки не достает матчасти :)
Ты удаляешь строки, а не поля как посоветовал АП.
Двойной клик по компоненту TTable и в редакторе полей вычещаем все поля. Потом какие надо вставишь (хоть все).
← →
cardexc (2006-04-21 10:33) [18]Гмм.... возможно не там нажимаю, но при двойном нажатии на Table, у меня там пусто, нету никаких полей, хотя когда жму вперед, он прыгает в БД по моим записям..
← →
cardexc (2006-04-21 18:06) [19]Пытаюсь сделать через параметры, но не получается добавить параметр (в дизайн тайме, в Query.Params) пункт "Add New" заблокирован (типа Enabled = fasle).
Кто знает почему ???
← →
vovnuke © (2006-04-21 18:09) [20]
> [19] cardexc (21.04.06 18:06)
хоть, запрос покажи. :-(
← →
cardexc (2006-04-21 18:20) [21]До запроса дело пока недоходит, надо создать параметр и использовать через параметр, я думаю..
а запрос в котором ошибка --
Query1.SQL.Add("INSERT INTO Main (Name) Values (TName.Text)");
← →
vovnuke © (2006-04-21 18:24) [22]в дизайнтайме напиши в Query.SQL:
insert into main (name) values (:name)
← →
cardexc (2006-04-21 18:30) [23]Написал, вызываю таким кодом
Form1.Query1.ParamByName("name").AsString := TName.Text;
Form1.Query1.ExecSQL;
Работает :) Большое спасибо ! Всем ! :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c