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

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

Insert [D5, Paradox]


Страницы:   1 2

New ©   (2004-01-19 15:06:00) 

Мастера, подскажите как правильно.
При показе формы выполняется:
DillDB:=Application.ExeName[1]+":\Bases\Dill.db";
(DillDB:String) т.е. определяю путь к БД.
После пытаюсь выполнить:
active:=false;
sql.Clear;
sql.add("Insert into DillDB (Firma,Sobst,INN,Phone,Fax,LegalAdress)values(Edit1.text,Edit2.text,Edit3.text,Edit4.text,Edit5.text,Edit6.text)");
execsql;
Т.е путь к базе пытаюсь взять из переменной.
Ругается, что нет базы.
Как правильно написать?


New   (2004-01-21 15:21:00) [1]

Да, почувствовал :).
Всем большое спасибо за помошь.


Vlad   (2004-01-21 13:39:00) [2]


>New (21.01.04 11:58) [18]
> Showmessage(sql.text) выдаёт:
> Insert into c:\Bases\Dill.db (Firma, Sobst, INN, Phone,
> Fax, LegalAdress) values (1,2,3,4,5,6)


А должен выдавать:
Insert into "c:\Bases\Dill.db" (Firma, Sobst, INN, Phone, Fax, LegalAdress) values ("1","2","3","4","5","6")

Разницу чувствуешь ?


New   (2004-01-21 12:46:00) [3]

2) Все поля текстовые - всё равно , что писать.

1)
Dilldb:string;
DillDB:=ExtractFileDrive(ParamStr(0)) + "\Bases\Dill.db";

"DillDB" ()values ();
"DillDB" ()values ();
"+DillDB+" ()values ();
как ещё записать - все три варианта не работают.

Кстати, при попытки просмотра таблицы select * from "+DillDB+";выдаётся ошибка Token not found/ Token: C


DenK_vrtz   (2004-01-21 12:30:00) [4]

1.c:\Bases\Dill.db должно быть в кавычках
2.Разбираться с типами


New   (2004-01-21 12:24:00) [5]

Но ведь в книжке написано:
Insert into <имя таблицы> (список полей) values (список значений);
Firma (Sobst, INN, Phone,...) - поэтому это непонятно. Почему Вы так написали?


Johnmen   (2004-01-21 12:02:00) [6]

Намек :
Поле Firma (Sobst, INN, Phone,...) числовое, что ты пытаешься записать в него число 1 (2,3,4,...) ???


New   (2004-01-21 11:58:00) [7]

Блин, замучился уже.
"Insert into "+DillDB+" (Firma, Sobst, INN, Phone, Fax, LegalAdress) values ("+Edit1.text+", "+Edit2.text+", "+Edit3.text+", "+Edit4.text+", "+Edit5.text+", "+Edit6.text+")";
Showmessage(sql.text) выдаёт:
Insert into c:\Bases\Dill.db (Firma, Sobst, INN, Phone, Fax, LegalAdress) values (1,2,3,4,5,6)
P.S. (1,2,3,4,5,6) - я ввёл в Edit"ы.
А потом ошибка: Invalid use of keyword. Token:? Line: 1
Уже имя базы и кавычки заключал - не получается!


Vlad   (2004-01-19 17:17:00) [8]


> New (19.01.04 16:54) [16]
> Имелось ввиду это:
> "+Edit1.text+" и т.д.

Ну прости, брат, если ты пишешь одно, а имеешь ввиду другое, то
жди, пока выйдут из отпуска местные телепаты.

Воспользуйся советом DenK_vrtz © (19.01.04 16:16) [11], заключи в кавычки путь к таблице


New   (2004-01-19 16:54:00) [9]

Имелось ввиду это:
"+Edit1.text+" и т.д.


DenK_vrtz   (2004-01-19 16:39:00) [10]

>New

Никто не выпендривается. Лучше ошибку самому исправить, потом ее уже не сделаешь. Тем более сказали чем воспользоваться.


Vlad   (2004-01-19 16:29:00) [11]


> New (19.01.04 16:26) [13]

Я тебе объяснил, посмотри что за запрос ты сформировал.
showmessage(sql.text) и сам все поймешь, а если не поймешь, спроси конкретно, о чем ты не понял.


New   (2004-01-19 16:26:00) [12]

Угу, а ты дальше его строчку почитай.... :-) вернее :-(
Ну вы можете новичку объяснить не выпендриваясь. В чём проблемма?
Почему мой вариант не работает?


DenK_vrtz   (2004-01-19 16:22:00) [13]

>Vlad ©
а мне то сначала не к чему о чем ты написал в [9]

Мда!

>New
:(


DenK_vrtz   (2004-01-19 16:16:00) [14]

В общем, :) путь к таблице надо заключить в кавычки. И все!
Одним словом, Vlad © (19.01.04 15:55) [6]! :)


DenK_vrtz   (2004-01-19 16:08:00) [15]

простите, господа, я туплю! :)

P.S. Админы, простите!


Vlad   (2004-01-19 16:07:00) [16]


> DenK_vrtz © (19.01.04 16:03) [8]

Угу, а ты дальше его строчку почитай.... :-) вернее :-(


DenK_vrtz   (2004-01-19 16:03:00) [17]

гы
DillDB + "(Firma,...
на
DillDB + " (Firma,


New   (2004-01-19 15:56:00) [18]

Invalid use of keyword.


Vlad   (2004-01-19 15:55:00) [19]


> New (19.01.04 15:33) [4]

Ты хоть смотрел какой запрос ты сформировал ?
showmessage(sql.text);

Этот пример из расчета, что все поля символьные:


const
sSQL: string = "Insert into %S (Firma, Sobst, INN, Phone, Fax, LegalAdress) values (%S, %S, %S, %S, %S, %S)");
var
SqlText,S1,S2,S3,S4,S5,S6: string;
......
s1:=QuotedStr(Edit1.Text);
s2:=QuotedStr(Edit2.Text);
s3:=QuotedStr(Edit3.Text);
s4:=QuotedStr(Edit4.Text);
s5:=QuotedStr(Edit5.Text);
s6:=QuotedStr(Edit6.Text);

SqlText:= Format(sSql,[DillDB, S1, S2, S3, S4, S5, S6]);

Sql.Add(SqlText)


Единственное, что я не помню, так это имя таблицы нужно брать в кавычки или нет.... Если что, внеси поправку.


DenK_vrtz   (2004-01-19 15:51:00) [20]

> New

а чего хоть говорит? Интересно! :)


Страницы:   1 2

Наверх

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