Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема при работе с mdb, AdoQuery 
:(
    Опции темы
seer
Дата 25.4.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



Имеется база мдб.
Имеется всего один компонент - настраиваю соединение.
связываю с БД.
пишу такой код:

Код

    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('SELECT * FROM Users');
    AdoQuery1.ExecSQL;
    Edit1.Text := IntToStr(AdoQuery1.FieldCount);


FieldCount возвращает 0?

Добавлено @ 12:49 
аха.. я понял. Есть список фиелд и туда добавляются все найденные столбцы и коунт кол-во названий столбцов в этом списке.
А как их получить кодом? 
PM MAIL   Вверх
seer
Дата 25.4.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



Также понял smile открыть забыл
    AdoQuery1.Open;
    Edit1.Text := IntToStr(AdoQuery1.FieldCount);
    AdoQuery1.Close;

Добавлено @ 13:06 
Edit1.Text := AdoQuery1.Fields[1].FieldName
Таким образом я получаю нужный столбец. Акак получить строку этого столбца? 
PM MAIL   Вверх
seer
Дата 25.4.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



smile и тут прогресс
Код

Edit1.Text := AdoQuery1.Recordset.Fields[2].UnderlyingValue;


Добавлено @ 13:42 
В данный момент просьба помчь с обновлением и добавлением. 
PM MAIL   Вверх
ТоляМБА
Дата 26.4.2006, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Цитата(seer @  25.4.2006,  13:38 Найти цитируемый пост)
обновлением
Код

Update

Цитата(seer @  25.4.2006,  13:38 Найти цитируемый пост)
добавлением

Код

Insert into
Поччитай в ФАКе и в статьях по SQL на форуме 
PM   Вверх
seer
Дата 28.4.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



ПЛЗ ПОМОГИТЕ! smile

1. Пишет: Ошибка запроса! В чем причина? (первое поле опустил - счетчик)

Код

AdoQuery1.SQL.Add('INSERT INTO Users (Number, Имя, Хрень) VALUES ("2", "3", "4")');


2. Возможно ли одним запросом изменить/получить информацию не по названию столбца.. а по его номеру.. Field[1]

Код

    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('SELECT * FROM Users');
    AdoQuery1.ExecSQL; // на выполнение
    AdoQuery1.Open; // открыть
    AdoQuery1.Last; // в конец
    AdoQuery1.Prior; // назад
    Edit1.Text := AdoQuery1.Recordset.Fields[2].UnderlyingValue;;
    AdoQuery1.Close; // открыть
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('INSERT INTO Users (Number, Имя, Хрень) VALUES ("2", "3", "4")');
    AdoQuery1.ExecSQL; // на выполнение


3. Напишите пример запроса с одновременным поиском..
Пример: (привел логику.. корректность не подтверждается)
Код

'Insert into Table1(strAddress, iCountr) Values iCountr = SELECT ID, strCountr From CountreID where strCountr = Russia  strAddress = "Tuta" '


Что-то такое.. Есть таблица 1 в нее добавляем код страны из таблицы Кодов Стран. Страну знаем.

Добавлено @ 12:25 
Да.. еще один маленький вопрос не по теме.. в дельфи как записать кавыфчки в кавычках..

Например Си

Код

"\"Hello word!:)\""
 
PM MAIL   Вверх
seer
Дата 28.4.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



помогите! 
PM MAIL   Вверх
Vit
Дата 28.4.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



1. А текст ошибки ты сейчас усилленно телепатируешь? -  тогда настраиваюсь на телепатический приём, как приму - так сразу отвечу! Скорее всего запрос надо переписать как:

Код

INSERT INTO [Users] ([Number], [Имя], [Хрень]) VALUES ('2', '3', '4')



2. Не понял... сам же говоришь что надо Fields[1] использовать, так в чём же проблема?

3.
Код

 Insert into Table1 (Field1, Field2)
    Select FieldA, FieldB From...



Цитата(seer @  28.4.2006,  03:23 Найти цитируемый пост)
Да.. еще один маленький вопрос не по теме.. в дельфи как записать кавыфчки в кавычках..


Удвоить их

Код

ShowMessage('This char '' is the qoute');

 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
seer
Дата 29.4.2006, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



Цитата(Vit @  28.4.2006,  21:12 Найти цитируемый пост)
Insert into Table1 (Field1, Field2)
    Select FieldA, FieldB From...


Но здесь Field1 - не результат запроса Select, аналогично Field2. Там как-то должно быть так (наблюдал такую конструкцию): Field1 =  Select... при условии одиночного результата.   

Это сообщение отредактировал(а) seer - 29.4.2006, 07:43
PM MAIL   Вверх
seer
Дата 29.4.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



Цитата(Vit @  28.4.2006,  21:12 Найти цитируемый пост)
INSERT INTO [Users] ([Number], [Имя], [Хрень]) VALUES ('2', '3', '4')


Это прошло, а вот модифицировать не получилось..
Что бы в одном запросе допустим [Хрень] присваиволось значение к примеру из другой таблицы при определенном условии..

Добавлено @ 12:17 
Цитата(Vit @  28.4.2006,  21:12 Найти цитируемый пост)
2. Не понял... сам же говоришь что надо Fields[1] использовать, так в чём же проблема?

Да, при условии что
Код

AdoQuery1.SQL.Add('SELECT * FROM Users');


Я также могу построить запрос
Код

AdoQuery1.SQL.Add('SELECT Хрень FROM Users');

или
Код

AdoQuery1.SQL.Add('SELECT Имя, Хрень FROM Users');


И мне не нужно знать номер столбца... а если мне не известно имя столбца, а известна колонка.. 

p.s. Знаю надо бы SQL почитать.. но времени в обрез.. не до етого.. всего пару запросов надо сформировать и все.. 
PM MAIL   Вверх
Vit
Дата 29.4.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Цитата(seer @  28.4.2006,  22:42 Найти цитируемый пост)
Но здесь Field1 - не результат запроса Select, аналогично Field2. Там как-то должно быть так (наблюдал такую конструкцию): Field1 =  Select... при условии одиночного результата.   



Не понял... нужен Update или Insert? Если Insert - то я тебе всё привёл, если Update - то дело плохо, Jet не поддерживает Update из Select. Только через клиента. PS. читай SQL


Цитата(seer @  29.4.2006,  03:14 Найти цитируемый пост)

Это прошло, а вот модифицировать не получилось..
Что бы в одном запросе допустим [Хрень] присваиволось значение к примеру из другой таблицы при определенном условии..


Млин... ну дал е тебе ответ:

Код

INSERT INTO [Users] ([Number], [Имя], [Хрень]) 
Select '2' as [Number], '3' as [Имя], ПолеИзДругойТаблицы
From ДругаяТаблица
Where УсловиеВыбораИзДругойТаблицы


Добавлено @ 15:12 
В запросе по номеру колонки выбирать нельзя, надо знать имя. Если известна колонка, то надо вытащить имя:

Query1.sql.text:='Select * From Table1'
...
ИмяКолонки:=Query1.fields[НомерКолонки].FieldName
...
Query2.sql.text:='Select '+ИмяКолонки+' From Table1...' 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
seer
Дата 29.4.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



Цитата(Vit @  29.4.2006,  15:08 Найти цитируемый пост)

INSERT INTO [Users] ([Number], [Имя], [Хрень]) 
Select '2' as [Number], '3' as [Имя], ПолеИзДругойТаблицы
From ДругаяТаблица
Where УсловиеВыбораИзДругойТаблицы


ммм.. Это что?  '2' as или '3' as - это соответствие? поискал про as нашел только слово 'как' smile

И подвопрос к этому вопросу. Если я [Хрень] хочу присвоить уже имеющееся символьное значение. Как я должен сформировать запрос через VALUE (включая сюда подзапрос "Select '2' as..." ): 
PM MAIL   Вверх
Vit
Дата 29.4.2006, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Цитата(seer @  29.4.2006,  07:13 Найти цитируемый пост)
ммм.. Это что?  '2' as или '3' as - это соответствие? поискал про as нашел только слово 'как' 



Так отправляю к книжкам по SQL, я не собираюсь писать учебник с прописными истиннами. Если у вас нет времени чтоб открыть букварь и посмотреть синтаксис команд Insert, Select и Update, то у меня переписывать этот учебник и подавно нет времени.

 
Цитата(seer @  29.4.2006,  07:13 Найти цитируемый пост)
И подвопрос к этому вопросу. Если я [Хрень] хочу присвоить уже имеющееся символьное значение. Как я должен сформировать запрос через VALUE (включая сюда подзапрос "Select '2' as..." ):  


Открываем любой учебник по SQL и читаем описание формата Insert до полного просветления.
 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
seer
Дата 30.4.2006, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



У меня литературы по СКЛ дофигища.. а вот Читать имхо, нужно день убить минимум, для основ.. 
Из-за пару запросов к БД.. в данном случае это не рациональная трата времени...и Тот кто это нормально знает... ему не составит труда расписать одну строку запроса. 
PM MAIL   Вверх
Vit
Дата 30.4.2006, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



А мне убивать час объясняя как работает простейший select или Update - это рациональная трата времени? Я так не считаю... Думаю, что ответы на ваши вопросы вы найдёте прямо на вашем компьютере посмотрев файлик:

"c:\Program Files\Common Files\Microsoft Shared\OFFICE11\1049\JETSQL40.CHM" 

В зависимости от версии оффиса путь к файлу будет немного другим но в целом искать там, там о Select, Update и Insert написано по 2 страницы текста. 

За Вас я Вашу "рациональную" работу делать не буду... Хотя... если Вы настаиваете, - согласен - я беру 50 $/час за консультацию, за эту сумму денег я согласен Вам объяснять всё что пожелаете, сколько угодно времени, могу исходя из той же суммы денег написать за вас любую программу, диплом или курсовик. 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
seer
Дата 30.4.2006, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.4.2006

Репутация: -1
Всего: нет



Во! За ссылку спасиба! А вот за 50$ в час.. я как-нить найду время на чтение. и проведу сам консультацию..;)

Добавлено @ 10:03 
Надо было в самом начале на ссылку кидать.. 
PM MAIL   Вверх
chup007
Дата 14.5.2006, 04:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 12.3.2006
Где: РФ ЖИГУЛЕВСК 63 Р ЕГИОН

Репутация: нет
Всего: нет



Цитата

я беру 50 $/час за консультацию, за эту сумму денег я согласен Вам объяснять всё что пожелаете, сколько угодно времени, могу исходя из той же суммы денег написать за вас любую программу, диплом или курсовик.

так для интереса, как быстро вы сможете сделать диплом? 
PM MAIL ICQ   Вверх
Vit
Дата 15.5.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Понятия не имею... зависит от темы диплома...  


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1055 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.