Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема при работе с 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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


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

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

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


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

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


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

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


 




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


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

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