![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Insert [D5, Paradox]
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
а чего хоть говорит? Интересно! :)