Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2015, 21:48   #1
Mapkus
 
Регистрация: 30.10.2015
Сообщений: 3
По умолчанию MySQL Элементарный вывод поля

Пытаюсь работать в Delphi 10 c MySQL с использованием dbExpress.
Поставил MySQL 5.5.3, настроил кодировку 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...

Подскажите плиз что я делаю не так...
Mapkus вне форума Ответить с цитированием
Старый 31.10.2015, 07:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
PutText(Fields[1].AsString);
Так же дает чепуху?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не записываются текстовые поля в MySql Illusiony PHP 2 20.01.2015 21:09
MySQL Delphi Поля BLOB xxbesoxx БД в Delphi 0 03.11.2013 22:42
MySQL Два уникальных поля hon SQL, базы данных 1 26.05.2013 21:01
Не могу сменить название поля в MySQL Syltan SQL, базы данных 3 10.10.2010 11:35
MySQl+PHP5 формат поля DATE Geddar SQL, базы данных 1 03.05.2009 16:54