Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывести результат SQL зароса в RichEdit. Из компонента QuerySQL 
:(
    Опции темы
F1reF0x
Дата 6.9.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть база MySQL. Есть RichEdit. Надо вывести в RichEdit базу (сети не подходят потому что нужно форматирование т.е что то выделенно что то не отображать и тд). Соединяюсь с БД хорошо, запросы на создание проходят тоже хорошо, насколько я понимаю вот это конструкция:

Код

  Query.SQL.Clear;
  Query.SQL.Add('SELECT * FROM test');
  Query.ExecSQL(true);


Тоже отлично работает. Но на выводит результат в DataSoruce. Как мне научить выводить её в RichEdit?
PM MAIL   Вверх
Akella
Дата 6.9.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



а потом циклом по квере идешь
Код

//выводим 2 поля
while not Query.eof do begin
  re1.lines.add(Query.fields[0].asString + 'разделитель'+ Query.fields[1].asString);
  Query.next;
end;

PM MAIL   Вверх
F1reF0x
Дата 6.9.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

  Query.SQL.Clear;
  Query.SQL.Add('SELECT * FROM test');
  Query.ExecSQL(true);
  RichEdit1.Lines.Add(Query.Fields[1].AsString);


Не работает. Всмысле выводим два поля? Код я написал для пример что бы хоть что нибудь из результата выполнения увидеть. На этот код пишет List index of bounds. Хотя строки есть.
PM MAIL   Вверх
Anark1
Дата 6.9.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

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



Для оператора SELECT лучше использовать 

Код

Query.Open()




--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
F1reF0x
Дата 6.9.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Буду использовать smile но вопрос в силе, как мне управлять содержимым результата запроса?
PM MAIL   Вверх
Rodman
Дата 6.9.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Цитата(F1reF0x @  6.9.2007,  14:54 Найти цитируемый пост)
List index of bounds

обращаешься к не существующему индексу.

В таблице TEST скока полей???

Код

Query.SQL.Clear;
Query.SQL.Add('SELECT FieldName1, FieldName2 FROM test');//индексы FieldName1 = 0, FieldName2 = 1.
Query.Open;
while not Query.eof do 
begin
  re1.lines.add(Query.fields[0].asString + '|'+ Query.fields[1].asString);
  Query.next;
end;

и будет тебе счастье!

Добавлено через 30 секунд
Цитата(F1reF0x @  6.9.2007,  15:37 Найти цитируемый пост)
управлять содержимым результата запроса? 

по подробнее
PM MAIL WWW Skype GTalk YIM MSN   Вверх
F1reF0x
Дата 6.9.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2 id и test

rel = RichEdit?

Добавлено через 2 минуты и 32 секунды
Спасибо больше, все работает. Тему пока что не закрывайте т.к могут появиться вопросы по ходу.
PM MAIL   Вверх
Rodman
Дата 6.9.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Цитата(F1reF0x @  6.9.2007,  15:48 Найти цитируемый пост)
2 id и test

rel = RichEdit?

шаришь
Код

Query.SQL.Clear;
Query.SQL.Add('SELECT id, test FROM test');
Query.Open;
while not Query.eof do 
begin
  re1.lines.add(Query.fields[0].asString + '|'+ Query.fields[1].asString);
  Query.next;
end;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
F1reF0x
Дата 7.9.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Теперь такая проблема не могу сделать запись в таблицу.

Код

MainForm.Query.SQL.Add('NSERT INTO `base` (`id`, `Firma`, `Dlojnost`, `Oplata`, `Treb`, `Sex`, `Raij`, `Addres`, `Phone`, `Contact`, `Cat`, `AData`) VALUES ('''', ''Òåñò'', ''Òåñò'', ''Òåñò'', '''', '''', '''', '''', '''', '''', '''', ''0000-00-00'')');

PM MAIL   Вверх
F1reF0x
Дата 7.9.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Никто разве с такой проблемой не сталкивался?
PM MAIL   Вверх
Riddler
Дата 7.9.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Код

MainForm.Query.SQL.Add('NSERT INTO `base` (`id`, `Firma`, `Dlojnost`, `Oplata`, `Treb`, `Sex`, `Raij`, `Addres`, `Phone`, `Contact`, `Cat`, `AData`) VALUES ('''', ''Òåñò'', ''Òåñò'', ''Òåñò'', '''', '''', '''', '''', '''', '''', '''', ''0000-00-00'')');



Ну если ты скопировал как есть то, в самом начале пропустил букву "I"
Вставкой записи занимается команда Insert
Теперь два варианта развития событий, а что говорит SQL-сервер?
Если ошибку, то какую?
А если ничего то после объявления
надо приписать
MainForm.Query.ExecSQL;
Да и еще, а значение
MainForm.Query.SQL
пустое или там уже содержится запрос?
Ты добавляешь новую строку запроса, не очищая старую.
PM MAIL   Вверх
Akella
Дата 10.9.2007, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Зачем ты `base` в кавычках пишешь? И зачем имена полей в кавычках пишешь?
PM MAIL   Вверх
Rodman
Дата 10.9.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Цитата(F1reF0x @  7.9.2007,  09:16 Найти цитируемый пост)
Теперь такая проблема не могу сделать запись в таблицу.

 ошибку выдает или не добавляются данные?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
F1reF0x
Дата 10.9.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



С этими проблемами разобрался =) теперь не работает по сети. даже пакет (судя по значкам в трее) не идет :(
Соединяюсь так:

Код

  with SQLConnection1 do
  begin
    ConnectionName := 'Connection';
    DriverName := 'MySQL';
    LibraryName := 'dbexpmysql.dll';
    VendorLib := 'libmySQL.dll';
    GetDriverFunc := 'getSQLDriverMYSQL';
    Params.Add( 'HostName=' + Copy(MySqlCon.Strings[3], 9, 255));
    Params.Add( 'User_Name=' + Copy(MySqlCon.Strings[0], 7, 255));
    Params.Add( 'Password=' + Copy(MySqlCon.Strings[1], 11, 255));
    Params.Add( 'Database='  + Copy(MySqlCon.Strings[2], 10, 255));
    LoginPrompt := TRUE;
    try
     Open;
    Except On Exception Do
     begin
      Application.MessageBox( 'К сожалению, соединиться с MySQL-сервером не удалось. Проверьте правильность ввода всех параметров.' , 'Ошибка соединения' , 0 );
      Status.Panels.Add.Text:= 'Статус: Не удается соединиться с базой MySql';
      exit;
     end;
    end;
  end;
  Status.Panels.Add.Text:= 'Статус: Подключено';


У меня на денвере работает. На другом компьютере с установленной MySQL не может подключиться.
PM MAIL   Вверх
Vas
Дата 11.9.2007, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



А может вместо:
Код

LibraryName := 'dbexpmysql.dll';

надо
Код

LibraryName := 'libmysql.dll';

Смотри самую первую тему в разделе с пометкой "Важно".


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
SergeBS
Дата 11.9.2007, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



F1reF0x
Права доступа у MySQL зависят от того, удаленно подключаешься или локально. Заведи тестового юзера, который может и так, и сяк подключаться. И проверь libmysql.dll, как Vas советует. 
PM MAIL   Вверх
F1reF0x
Дата 11.9.2007, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ок. Проблем в подключением у меня на компьютере на деневере нет. Не работает у заказчиков на MySQL. 

    LibraryName := 'dbexpmysql.dll';
    VendorLib := 'libmySQL.dll';

У меня же вроде написано что либ му скл использовать... но попробую. 
Первую тему смотрел, библиотека у меня оттуда.

Добавлено через 2 минуты и 58 секунд
LibraryName := 'dbexpmysql.dll';
Отвечает за загрузку драйвера, без него ругается что не может загрузить драйвер SQLDriverMYSQL.
Щас попробую сложить в  папку с софтом эту длл и подключиться.
PM MAIL   Вверх
Страницы: (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.0954 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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