|
MySQL.RU - Webboard
Вернуться
Delphi Элементарный вывод поля из MqSQL (Mapkus) 29/10/2015 - 22:45:15
Re: Delphi Элементарный вывод поля из MqSQL (Akina) 30/10/2015 - 09:40:26
Re: Delphi Элементарный вывод поля из MqSQL (Mapkus) 30/10/2015 - 16:13:52
Re: Delphi Элементарный вывод поля из MqSQL (Akina) 30/10/2015 - 22:20:05
> Original message text:
> From: Mapkus - 29/10/2015 - 22:45:15
> Subject:Delphi Элементарный вывод поля из MqSQL
> -----------------
> Доброго вечера!..
>
> Пытаюсь работать в Delphi 10 c MySQL с использованием dbExpress.
> Поставил MySQL 5.5.23, настроил кодировку cp1251
>
> mysql> \status
> --------------
> C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin\mysql.exe Ver 14.14 Distrib 5
> .5.23, for Win32 (x86)
>
> Connection id: 1
> Current database: test
> Current user: root@localhost
> SSL: Not in use
> Using delimiter: ;
> Server version: 5.5.23 MySQL Community Server (GPL)
> Protocol version: 10
> Connection: localhost via TCP/IP
> Insert id: 3
> Server characterset: cp1251
> Db characterset: cp1251
> Client characterset: cp1251
> Conn. characterset: cp1251
> TCP port: 3306
> Uptime: 2 hours 14 min 51 sec
>
> Threads: 1 Questions: 46 Slow queries: 0 Opens: 36 Flush tables: 1 Open tab
> les: 0 Queries per second avg: 0.005
> --------------
>
> Создал табличку
>
> create table test (
> ID int unsigned not null auto_increment,
> NAME varchar(15) not null,
> primary key (ID) ) ;
>
> insert into test (name) values ('Test name');
> insert into test (name) values ('Second name');
> insert into test (name) values ('Русский');
>
> select * from test;
>
> Вывод корректный
>
> +----+-------------+
> | ID | NAME |
> +----+-------------+
> | 1 | Test name |
> | 2 | Second name |
> | 3 | Русский |
> +----+-------------+
> 3 rows in set (0.00 sec)
>
> Набросал простенький вывод поля таблички
>
> type
> TForm1 = class(TForm)
> SQLConnection1: TSQLConnection;
> RichEdit1: TRichEdit;
> SQLQuery1: TSQLQuery;
> procedure PutText(Str:string);
> procedure FormActivate(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> Form1: TForm1;
>
> implementation
>
> {$R *.dfm}
>
> procedure TForm1.PutText(Str:string);
> begin
> RichEdit1.Lines.Add(Str)
> end;
>
> procedure TForm1.FormActivate(Sender: TObject);
> begin
> PutText('Hello!..');
> with SQLConnection1 do
> begin
> Open;
> if Connected then PutText('Connect OK..') else PutText('Connect Bad..')
> end;
> with SQLQuery1 do
> begin
> Open;
> First;
> while not Eof do
> begin
> PutText(FieldByName('NAME').AsString);
> Next;
> end;
>
> end;
>
> end;
>
> В SQLQuery запрос
>
> SELECT NAME FROM test
>
> Вывод меня очень удивил
>
> Hello!..
> Connect OK..
> 0
> 0
> 0
>
> Если поставить SQL
>
> SELECT ID FROM test
>
> вывод корректный
>
> Hello!..
> Connect OK..
> 1
> 2
> 3
>
> Не могу взять в толк почему на текстовые поля выходят нули..
> На работе такая конструкция вывода полей работает на ура... Правда СУБД там DB2 и Oracle...
>
> Подскажите плиз что я делаю не так...
>
From: Akina - 30/10/2015 - 22:20:05
Subject:Delphi Элементарный вывод поля из MqSQL
-----------------
> каким образом можно мониторить внешний обмен со стороны сервера MySQL..
Запросы, поступающие на сервер, попадают в General Query Log. Как туда сунуть нос, описано в документации.
А вот то, что он отдаёт, так просто не получить. Впрочем, ничто не мешает повторить выполнение запроса, вычитанного из лога, но с консоли. Может, набор записей и будет иным - но это никак не скажется на типах данных или кодировке полей записей.
> Перешел с MySQL 5.5 на 5.1
Лучше бы на 5.7.9, который недавно зарелизили. А даунгрейд вообще непонятен, даже по целям.
> предполагаю переход в Delphi c dbExpress на ADO
А вот это всемерно одобрямс.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43401
|
|