Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.016 c