Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
3-1142434109
RomanH
2006-03-15 17:48
2006.05.07
Добавление Jpeg в таблицу


2-1145371762
Beni
2006-04-18 18:49
2006.05.07
HexToBin(), BinToHex()


2-1145335020
Tans
2006-04-18 08:37
2006.05.07
Подскажите рациональный выход


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


15-1144856995
ArtemESC
2006-04-12 19:49
2006.05.07
Настольгия...





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