Форум: "Базы";
Текущий архив: 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)
тогда ты добавишь значение EDIT_Name
VALUES(""+EDIT_NAME.Text+")");
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.061 c