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

Вниз

БД, ошибка добавления   Найти похожие ветки 

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

Наверх




Память: 0.51 MB
Время: 0.039 c
2-1144903632
paul_k
2006-04-13 08:47
2006.05.07
Не могу понять. Или у меня руки кривые или одно из двух.


15-1144736125
Jeer
2006-04-11 10:15
2006.05.07
Технология термоядерного синтеза типа «Токамак», разработанная в


1-1143797173
TStas
2006-03-31 13:26
2006.05.07
Как узнать, какой процесс активный?


2-1145525036
Ded22
2006-04-20 13:23
2006.05.07
DBLoocupCombobox


9-1129465753
!Trinix
2005-10-16 16:29
2006.05.07
Нужны кости