Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.038 c
3-1078914056
Levan
2004-03-10 13:20
2004.04.11
Pochemu teriaetsia tip ftInteger?


3-1078997406
wik
2004-03-11 12:30
2004.04.11
Сортировка записей в Datasete


3-1079530237
Layner
2004-03-17 16:30
2004.04.11
Как запретить удалить запись с опред ID (Значением поля)?


1-1080204864
new
2004-03-25 11:54
2004.04.11
Индивидуальный номер


4-1078871731
demonyator
2004-03-10 01:35
2004.04.11
Необходимо знать о каждом созданном процессе в системе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский