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

Вниз

ADOQuery - проблемы   Найти похожие ветки 

 
Anarki ©   (2004-03-10 18:17) [0]

Поставил 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 пашет без проблем.


 
Johnmen ©   (2004-03-10 18:22) [1]

1. Посмотри как у тебя в ADODataSet "делается" запрос.
2. "Объясни" драйверу, что такое EDIT_NAME.Text :)
3. Объясни нам, зачем этому ADD_QUERY нужен источник данных :))


 
Anarki ©   (2004-03-10 18:30) [2]


> 1. Посмотри как у тебя в ADODataSet "делается" запрос.

дело в том, что с ADODataSet никакхи траблов. Там обычный запрос
SELECT * FROM...


> 2. "Объясни" драйверу, что такое EDIT_NAME.Text :)

это как???


> . Объясни нам, зачем этому ADD_QUERY нужен источник данных
> :))

ну не нужен - уберу эту строку.
p.s. а зачем соб-нно не нужен?


 
Johnmen ©   (2004-03-10 18:33) [3]

>это как???

Это намёк...

>p.s. а зачем соб-нно не нужен?

А первый спросил ! :))) Зачем нужен ?


 
menart ©   (2004-03-10 18:33) [4]

DataModule_Main.ADD_QUERY.SQL.Add("INSERT INTO table_1 (name)
VALUES("+EDIT_NAME.Text+")");


Хотябы так...


 
menart ©   (2004-03-10 18:35) [5]

EDIT_NAME.Text - я понял что это TEdit? Или я не прав, а так access не знает что это такое :)


 
Anarki ©   (2004-03-10 18:41) [6]


> DataModule_Main.ADD_QUERY.SQL.Add("INSERT INTO table_1 (name)
>
> VALUES("+EDIT_NAME.Text+")");
>
> Хотябы так...

та же ошибка осталась... :(


 
Anarki ©   (2004-03-10 18:42) [7]


> EDIT_NAME.Text - я понял что это TEdit? Или я не прав, а
> так access не знает что это такое

да, это TEdit. Если Access его не знает, то записать значение этого TEdit"a в БД?


 
menart ©   (2004-03-10 18:45) [8]


> DataModule_Main.ADD_QUERY.DataSource := DataModule_Main.DataSource_1;

выкинуть


> DataModule_Main.ADD_QUERY.SQL.Add("INSERT INTO table_1 (name)
> VALUES(EDIT_NAME.Text)");

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


 
Johnmen ©   (2004-03-10 18:47) [9]

>Anarki ©

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


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


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

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


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


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

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


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

Нет.


 
menart ©   (2004-03-10 18:52) [12]


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

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


 
menart ©   (2004-03-10 18:54) [13]


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

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


 
Anarki ©   (2004-03-10 18:56) [14]


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

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


 
Johnmen ©   (2004-03-10 18:56) [15]

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

а зачем да ?


 
menart ©   (2004-03-10 19:04) [16]


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


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


 
Johnmen ©   (2004-03-10 19:07) [17]

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

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

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


 
Vlad ©   (2004-03-10 19:08) [18]


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

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


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

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


 
Vlad ©   (2004-03-10 19:12) [20]


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

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


 
Johnmen ©   (2004-03-10 19:13) [21]

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

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

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

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


 
menart ©   (2004-03-10 19:14) [22]


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

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


 
Vlad ©   (2004-03-10 19:15) [23]


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

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


 
Anarki ©   (2004-03-10 19:29) [24]

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

У меня всё получилось.
Я добавил 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.
что делать?


 
Mike Kouzmine ©   (2004-03-10 19:38) [25]

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


 
Anarki ©   (2004-03-10 19:50) [26]


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

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

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


 
Johnmen ©   (2004-03-10 23:23) [27]

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


 
menart ©   (2004-03-11 11:22) [28]


> 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



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

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

Наверх




Память: 0.53 MB
Время: 0.058 c
1-1082626363
Sergey__
2004-04-22 13:32
2004.04.11
Как сделать чтобы текст плавно передвигался по Cavans-у формы


7-1075204090
SPIRIT
2004-01-27 14:48
2004.04.11
Как спрятать панель задач ???


9-1064557030
Darthman
2003-09-26 10:17
2004.04.11
PowerDraw


14-1082357056
Sectey
2004-04-19 10:44
2004.04.11
Помогите найти Банников Н.А.


9-1065523303
Иван.
2003-10-07 14:41
2004.04.11
ИСХОДНИК.