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

Вниз

Insert   Найти похожие ветки 

 
New   (2004-01-19 15:06) [0]

Мастера, подскажите как правильно.
При показе формы выполняется:
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;
Т.е путь к базе пытаюсь взять из переменной.
Ругается, что нет базы.
Как правильно написать?


 
Vlad ©   (2004-01-19 15:11) [1]

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

sql.add("Insert into " + DillDB + "Firma,Sobst,INN,Phone,Fax,LegalAdress)values " + ....(итд)


 
New   (2004-01-19 15:20) [2]

sql.add("Insert into " + DillDB + "(Firma, Sobst, INN, Phone, Fax, LegalAdress) values (Edit1.text, Edit2.text, Edit3.text, Edit4.text, Edit5.text, Edit6.text)");
Не работает.


 
Vlad ©   (2004-01-19 15:24) [3]


> New (19.01.04 15:20) [2]


Первый день программируем ?


 
New   (2004-01-19 15:33) [4]

Почти...


 
DenK_vrtz ©   (2004-01-19 15:51) [5]

> New

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


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


> 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)


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


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

Invalid use of keyword.


 
DenK_vrtz ©   (2004-01-19 16:03) [8]

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


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


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

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


 
DenK_vrtz ©   (2004-01-19 16:08) [10]

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

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


 
DenK_vrtz ©   (2004-01-19 16:16) [11]

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


 
DenK_vrtz ©   (2004-01-19 16:22) [12]

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

Мда!

>New
:(


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

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


 
Vlad ©   (2004-01-19 16:29) [14]


> New (19.01.04 16:26) [13]

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


 
DenK_vrtz ©   (2004-01-19 16:39) [15]

>New

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


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

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


 
Vlad ©   (2004-01-19 17:17) [17]


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

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

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


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

Блин, замучился уже.
"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
Уже имя базы и кавычки заключал - не получается!


 
Johnmen ©   (2004-01-21 12:02) [19]

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


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

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


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

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


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

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


 
Vlad ©   (2004-01-21 13:39) [23]


>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 15:21) [24]

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



Страницы: 1 вся ветка

Текущий архив: 2004.02.13;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.028 c
6-38978
senya
2003-12-12 14:34
2004.02.13
SMTP Аутентификация


7-39103
Artem03
2003-11-28 14:49
2004.02.13
Занят (открыт) файл (txt, xls и пр.) или нет.


3-38717
DelphiNew
2004-01-22 10:53
2004.02.13
Индексы


7-39110
Devourer
2003-11-27 16:01
2004.02.13
Эмуляция нажатия клавиатуры в DOS-программее


14-39002
chtr
2004-01-22 07:34
2004.02.13
Иконку для D7