Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

БД, ошибка добавления [D7]


Страницы:   1 2

cardexc ©   (2006-04-20 17:36:00) 

Здравствуйте, у меня по мере создания программы, возник один глупый вопрос, решить который неполучается =(
Возможно ('полюбому') было уже обсуждение этого, но я ненашел

При добавлении новой записи в БД появляется следующее
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


cardexc   (2006-04-21 18:30:00) [1]

Написал, вызываю таким кодом


Form1.Query1.ParamByName('name').AsString := TName.Text;
Form1.Query1.ExecSQL;


Работает :) Большое спасибо ! Всем ! :)


vovnuke   (2006-04-21 18:24:00) [2]

в дизайнтайме напиши в Query.SQL:
insert into main (name) values (:name)


cardexc   (2006-04-21 18:20:00) [3]

До запроса дело пока недоходит, надо создать параметр и использовать через параметр, я думаю..

а запрос в котором ошибка --


Query1.SQL.Add('INSERT INTO Main (Name) Values (TName.Text)');


vovnuke   (2006-04-21 18:09:00) [4]


> [19] cardexc   (21.04.06 18:06)

хоть, запрос покажи. :-(


cardexc   (2006-04-21 18:06:00) [5]

Пытаюсь сделать через параметры, но не получается добавить параметр (в дизайн тайме, в Query.Params) пункт "Add New" заблокирован (типа Enabled = fasle).

Кто знает почему ???


cardexc   (2006-04-21 10:33:00) [6]

Гмм.... возможно не там нажимаю, но при двойном нажатии на Table, у меня там пусто, нету никаких полей, хотя когда жму вперед, он прыгает в БД по моим записям..


Мефисто   (2006-04-20 22:24:00) [7]

cardexc   (20.04.06 22:14) [16]

Всетаки не достает матчасти :)

Ты удаляешь строки, а не поля как посоветовал АП.
Двойной клик по компоненту TTable и в редакторе полей вычещаем все поля. Потом какие надо вставишь (хоть все).


cardexc   (2006-04-20 22:14:00) [8]

Я просто вместо этого написал вручную в свойство Query ту строку, и получил опять ету ошибку

Поле нейм существует, и типы совпадают ...

При попытке удалить созданые поля, случилось то что я и боялся.. у меня таблицы связаны, связь один ко многим, т.е. пытаюсь удалить, он мне говорит что-то типа: Нельзя так удалять, исп. связь master-detail

Удалял я обычным способом


With MainTable do  while not EOF do
 delete ;


cardexc   (2006-04-20 21:54:00) [9]

Спасибо, попробую


Мефисто   (2006-04-20 21:52:00) [10]

cardexc   (20.04.06 21:34) [12]

Намек был на то, чтобы ее не стразу в Query1.SQL.Add() вставить, а посмотреть во время отладки значение даннй переменной. Т.е. итоговая строка получилась именно та что задумывалась или нет.

MyStr := 'INSERT INTO Main (Name) Values (' + TName.Text + ')';

На проверку, существует ли поле 'Name' и соответсвет ли введенное значение 'TName.Text' типу данных поля  'Name'.


Anatoly Podgoretsky   (2006-04-20 21:47:00) [11]

Удали все поля созданые в дизайн-тайм


cardexc   (2006-04-20 21:34:00) [12]

При присвоении временной стринговой переменной ругаеться на нее

>Invalid field name. имя переменной ....


Мефисто   (2006-04-20 20:14:00) [13]

>> ('INSERT INTO Main (Name) Values (TName.Text)');

Присвой временной стринговой переменной и посмотри результат под отладчиком. Или выведи результат формирования этой строки куданибудь. Наглядно сам все и увидишь, чего и где.


Мефисто   (2006-04-20 20:14:00) [14]

>> ('INSERT INTO Main (Name) Values (TName.Text)');

Присвой временной стринговой переменной и посмотри результат под отладчиком. Или выведи результат формирования этой строки куданибудь. Наглядно сам все и увидишь, чего и где.


cardexc   (2006-04-20 20:01:00) [15]

кстати кавычки непричем, при ручном добавлении такой же ерор


cardexc   (2006-04-20 18:56:00) [16]

понятно, спасибо, буду пробовать

чего нибудь почитал, не помогло :)


vovnuke   (2006-04-20 18:51:00) [17]

ну тогда я бы поробовал вынести TName.Text из кавычек, или что будет более правильным, использовать в запросе параметры.
А так вообще не плохо почитать чего нибудь (на будущее).


cardexc   (2006-04-20 18:44:00) [18]

Хотелось бы конечно чтобы там оказалась строка, которая находиться в TName.Text ...


vovnuke   (2006-04-20 18:27:00) [19]

как ты думаешь что у тебя подставляется в запрос вместо

> TName.Text


cardexc   (2006-04-20 18:12:00) [20]

vovnuke:

Не совсем понял вопрос....


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо