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

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

ADOQuery - проблемы [D7, Access]


Страницы:   1 2

Anarki ©   (2004-03-10 18:17:00) 

Поставил ADOQuery для того, чтобы сделать запрос добавления записи.

Компонент ADD_QUERY находится вместе с DataSourcr_1 на модуле DataModule_1.


DataModule_Main.ADD_QUERY.ConnectionString := 'Provider=MSDASQL.1;Data Source=my_database;
DataModule_Main.ADD_QUERY.DataSource := DataModule_Main.DataSource_1;
DataModule_Main.ADD_QUERY.SQL.Add('INSERT INTO table_1 (name) VALUES(EDIT_NAME.Text)');
DataModule_Main.ADD_QUERY.ExecSQL;


Это всё на обработчике кнопки.
Но при нажатии на кнопку вылетает exception:
[Microsoft][ODBC Microsoft Access Driver]

Хотя другой компонет - ADODataSet, который коннектиться к БД через этот ConnectionString пашет без проблем.


menart   (2004-03-11 11:22:00) [1]


> Anarki ©   (10.03.04 19:29) [24]



> DataModule_Main.ADO_QUERY.SQL.Add('INSERT INTO table_1(name)
> VALUES(''EDIT_NAME.Text)'');


DataModule_Main.ADO_QUERY.SQL.Add('INSERT INTO table_1(name)
VALUES('' +EDIT_NAME.Text +')');
тогда ты добавишь значение EDIT_Name


Johnmen   (2004-03-10 23:23:00) [2]

У тебя что F1 отломана ? Или читать не умеешь ?


Anarki   (2004-03-10 19:50:00) [3]


> Почитай умные книжки (хотя хелпа за глаза хватит).
> Q.SQL.Add('INSERT INTO table_1(name) VALUES(:E)');
> q.params[0].asstring := edit1.text;
> q.execsql;

Да, интересно где н ADOQuery вы взяли свойство params???

У него есть Parameters, но у последнего нету AsString.


Mike Kouzmine   (2004-03-10 19:38:00) [4]

Почитай умные книжки (хотя хелпа за глаза хватит).
Q.SQL.Add('INSERT INTO table_1(name) VALUES(:E)');
q.params[0].asstring := edit1.text;
q.execsql;


Anarki   (2004-03-10 19:29:00) [5]

Так, прошу не базарить! :)

У меня всё получилось.
Я добавил ADOConnection и теперь через него коннектюсь.

Тока вот проблема одна не решилась.

Когда я делаю

DataModule_Main.ADO_QUERY.SQL.Add('INSERT INTO table_1(name) VALUES(''EDIT_NAME.Text)'');

То он мне не добавляет не значение EDIT_NAME'a а само выражение "EDIT_NAME.Text".

Пробовал делатьЖ

DataModule_Main.ADO_QUERY.SQL.Add('INSERT INTO table_1(name) VALUES(:EDIT_NAME.Text)');

Вылезает exception:

Parameter Object is improperly defined. Inconsistent or incomplete information was provided.
что делать?


Vlad   (2004-03-10 19:15:00) [6]


> menart ©   (10.03.04 19:14) [22]
>
> > Еще раз. Этот запрос ничего не добавляет
>
> а что он делает? :0

Он инициирует ошибку драйвера.


menart   (2004-03-10 19:14:00) [7]


> Еще раз. Этот запрос ничего не добавляет

а что он делает? :0


Johnmen   (2004-03-10 19:13:00) [8]

>Добавляет одно поле, а у него в таблице их 5, остальнные

Не поле, а запись. Разница есть ?

>остаются пустые, а в конструкции указано что это незя :)

В какой конструкции ?


Vlad   (2004-03-10 19:12:00) [9]


> INSERT INTO table_1 (name) VALUES(EDIT_NAME.Text)
> Добавляет одно поле, а у него в таблице их 5, остальнные
> остаются пустые, а в конструкции указано что это незя :)

Еще раз. Этот запрос ничегоне добавляет


menart   (2004-03-10 19:10:00) [10]

INSERT INTO table_1 (name) VALUES(EDIT_NAME.Text)
Добавляет одно поле, а у него в таблице их 5, остальнные остаются пустые, а в конструкции указано что это незя :)


Vlad   (2004-03-10 19:08:00) [11]


> menart ©   (10.03.04 19:04) [16]

он туда ничегоне добавляет. Даже пустых полей.
Запрос который привел автор просто не рабочий.


Johnmen   (2004-03-10 19:07:00) [12]

>потому что он туда ничего не добавляет, оставляет пустые поля,
>у меня у самого были такие проблемы

Э-э-э... Как это не добавляет ??? А INSERT это что ?
Где оставляет пустые поля ???

Твои проблемы неясны. То есть абсолютно...


menart   (2004-03-10 19:04:00) [13]


> >а далжно быть да!
>
> а зачем да ?


потому что он туда ничего не добавляет, оставляет пустые поля, у меня у самого были такие проблемы


Johnmen   (2004-03-10 18:56:00) [14]

>а далжно быть да!

а зачем да ?


Anarki   (2004-03-10 18:56:00) [15]


> Делай всё через ADOConnect? проще, удобнее и т.п. А потом
> на ADOConnect вешай ADOQuery

ОК, попробую.


menart   (2004-03-10 18:54:00) [16]


> > Посмотри есть ли в accesse таблице пустые строки > нет
> ?
>
> Нет.

а далжно быть да!


menart   (2004-03-10 18:52:00) [17]


> Хотя другой компонет - ADODataSet, который коннектиться
> к БД через этот ConnectionString пашет без проблем

Делай всё через ADOConnect? проще, удобнее и т.п. А потом на ADOConnect вешай ADOQuery


Anarki   (2004-03-10 18:51:00) [18]


> у тебя сколько полей в таблице?

5 полей. Но я в остальные ничего не добавляю - он разве автоматом туда пустые строки не добавит?


> Посмотри есть ли в accesse таблице пустые строки > нет ?

Нет.


Vlad   (2004-03-10 18:50:00) [19]


> Anarki ©   (10.03.04 18:42) [7]

А пробовал ли ты посмотреть хотя бы showmessage'м результат составления своего запроса (SQL.Text) ?
Думаю, если попробуешь - кое что прояснится :-)


Johnmen   (2004-03-10 18:47:00) [20]

>Anarki ©

Прошу прощения, ты не пробовал книги читать по данной тематике ?
Или хотя бы хелпы ?


Страницы:   1 2

Наверх

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