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

Вниз

Проблема с вставкой записи в MSAccess базу   Найти похожие ветки 

 
Checist [root]   (2005-02-01 21:22) [0]

Пытаюсь через TQuery:
DMod.QContAdd.Close;
DMod.QContAdd.SQL.Clear;
DMod.QContAdd.SQL.Add("INSERT INTO TabCont(CompName) VALUES("NComp")");
DMod.QContAdd.Prepare;
with DMod.QContAdd.Params.CreateParam(ftString, "NComp", ptInput) do AsString := NComp.Text;
DMod.QContAdd.UpdateStatus;
ShowMessage(DMod.QContAdd.SQL.Text);
DMod.QContAdd.ExecSQL;

Вылетает ошибка НЕВОЗМОЖНО НАЙТИ ОБЪЕКТ.
Из базы нормально считываю. По дефолту в Query SQL и Params пусты, база подключена на ODBS


 
USTAS   (2005-02-02 09:36) [1]

это строка запроса
INSERT INTO TabCont(CompName) VALUES("NComp")
в новой записи в таблице TabCont установит значение для поля CompName равное NComp

если ты хочешь использовать параметры то строка в запросе на добавление записи должна выглядеть таким образом
INSERT INTO TabCont(CompName) VALUES(:NComp)
соответсвенно строки
DMod.QContAdd.Prepare;
with DMod.QContAdd.Params.CreateParam(ftString, "NComp", ptInput) do AsString := NComp.Text;
DMod.QContAdd.UpdateStatus;
можно удалить, а вместо них использовать
QContAdd.ParamByName("NComp").Value := NComp.Text;

"Вылетает ошибка НЕВОЗМОЖНО НАЙТИ ОБЪЕКТ" - обычно такая ошибка вылетает если обращаешся к несуществующей таблице.


 
Checist [root]   (2005-02-02 12:09) [2]

Но таблица есть. И если свойство SQL заполнить в процессе разработки, то вес ОК... А как сделать это в процессе выполнения... Напишите простой пример работающего SQL запроса для вставки записи, какие компоненты кроме Query надо использовать?


 
Соловьев ©   (2005-02-02 12:11) [3]


> кроме Query

TADODataSet и TADOCommand и только

INSERT INTO TabCont(CompName) VALUES("NComp")


 
Checist [root]   (2005-02-02 12:15) [4]

Не проходит пишет ОБъект не найдед, я делаю через параметр:

DMod.QContAdd.Close;
DMod.QContAdd.SQL.Clear;
with DMod.QContAdd.Params.CreateParam(ftString,"NComp",ptInput)  do AsString := NComp.Text;
DMod.QContAdd.SQL.Text := "INSERT INTO TabCont (CompName) VALUES (:NComp)";
DMod.QContAdd.ExecSQL;


 
Соловьев ©   (2005-02-02 12:17) [5]

DMod.QContAdd.Close;
DMod.QContAdd.SQL.Clear;
DMod.QContAdd.SQL.Text := "INSERT INTO TabCont (CompName) VALUES (:NComp)";
DMod.QContAdd.Params[0].AsString := NComp.Text;
DMod.QContAdd.ExecSQL;


 
Checist [root]   (2005-02-02 12:22) [6]

DMod.QContAdd.Close;
DMod.QContAdd.SQL.Clear;
DMod.QContAdd.Params.CreateParam(ftString,"NComp",ptInput);
DMod.QContAdd.Params[0].AsString :=  NComp.Text;
DMod.QContAdd.SQL.Text := "INSERT INTO TabCont (CompName) VALUES (:NComp)";
DMod.QContAdd.ExecSQL;

Та же ошибка, а если бtз CreateParam, то List out of bounds!
Нет у вас мелкой проги примера, с использованием Query


 
Соловьев ©   (2005-02-02 12:23) [7]


> DMod.QContAdd.Params.CreateParam(ftString,"NComp",ptInput);
> DMod.QContAdd.Params[0].AsString :=  NComp.Text;
> DMod.QContAdd.SQL.Text := "INSERT INTO TabCont (CompName)
> VALUES (:NComp)";

где такое написано в моем посте???


 
Checist [root]   (2005-02-02 12:26) [8]

Если точно как у вас то ошибка "List out of bounds"


 
Соловьев ©   (2005-02-02 12:27) [9]

TQuery.ParamCheck = true?


 
Checist [root]   (2005-02-02 12:33) [10]

Спасибо теперь все нормально!!!


 
Соловьев ©   (2005-02-02 12:36) [11]


> DMod.QContAdd.

имхо, инкапсуляцию почитай.
Задатки от сюда- http://www.delphikingdom.com/asp/viewitem.asp?catalogid=724


 
Checist [root]   (2005-02-02 20:17) [12]

А при использовании нескольких параметров вылетает ошибка в SQL синтаксе:
SQL.Close;
SQL.SQL.Clear;
SQL.SQL.Text := "INSERT INTO TabCont(Comp, Cont, Tel, TMob, TWork, Adress, Text) VALUES(:P0,:P1,:P2,:P3,:P4,:P5,:P6)";
SQL.Params[0].AsString := NComp.Text;
SQL.Params[1].AsString := NName.Text + " " + NSurn.Text + " " + NSecName.Text;
SQL.Params[2].AsString := NTel.Text;
SQL.Params[3].AsString := NMob.Text;
SQL.Params[4].AsString := NWork.Text;
SQL.Params[5].AsString := NADr.Text;
SQL.Params[6].AsString := NText.Text;
SQL.ExecSQL;


 
Соловьев ©   (2005-02-02 20:35) [13]


> SQL.SQL.Text := "INSERT INTO TabCont(Comp, Cont, Tel, TMob,
> TWork, Adress, Text) VALUES(:P0,:P1,:P2,:P3,:P4,:P5,:P6)";

Text?


 
Checist [root]   (2005-02-02 20:59) [14]

TabCont(Comp, Cont, Tel, TMob, TWork, Adress, Text) - колонка называется Text.
А как надо?



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

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

Наверх




Память: 0.49 MB
Время: 0.057 c
11-1089967844
Falcon
2004-07-16 12:50
2005.03.06
ImageList и динамическая загрузка.


1-1108563308
Timofey
2005-02-16 17:15
2005.03.06
Просмотр страниц в TWebBrowser


3-1107790740
td
2005-02-07 18:39
2005.03.06
как организовать запрос?


14-1108063526
bot v0.00000001
2005-02-10 22:25
2005.03.06
!!!!помогите решить задачу!!!!


4-1106636527
bjohny
2005-01-25 10:02
2005.03.06
Управление Canon PowerShot