Lazarus, PostgreSQL, Field not found

Merhaba;
PostgreS de bir veritabanı ve tablo oluşturdum. Lazarusla aşağıdaki select cümlesi ile veri çekmeye çalışırken hata veriyor.

lazarus-postgresql-field-not-found

Ve sorun muhtemelen “i” karakterinden kaynaklanıyor. Veritabanının dili türkçe olduğu için filan mıdır?

CREATE DATABASE db_tecrube WITH OWNER u_tecrube 
    TEMPLATE template0 
    ENCODING 'UTF-8' 
    LC_COLLATE 'tr_TR.UTF-8' 
    LC_CTYPE = 'tr_TR.UTF-8';    

create table sch_tecrube.kullanicilar(
   okytno               serial          NOT NULL,
        constraint pk__kullanicilar__okytno primary key(okytno),   
   kullanici_ismi       varchar(100)    NOT NULL,
        constraint uk__kullanicilar__kullanici_ismi unique (kullanici_ismi),
   faal                 boolean         NOT NULL    DEFAULT FALSE,
   olusturulma_tarihi   timestamp       NOT NULL    DEFAULT Now()
);

SELECT okytno, kullanici_ismi, faal, olusturulma_tarihi
FROM sch_tecrube.kullanicilar;

Dbeaver ile veritabanı oluşturarak deneme yapınız.

Merhaba
Dbeaver da sorun yok, php pdo ile sorun yok. Aslında Lazarus dışında hiç bir sorun yok.

Tek sorunum lazarus…

Selamlar.

Örnek bir veritabanı oluşturup denedim. Alan isimlerinde _ ve i karakterlerini de yazdım ama bir türlü hata alamadım :slight_smile:

sql cümlesinde kullandığınız tabloyu ve alan adlarını yanlış seçmediğinizi varsayıyorum.

Merhaba;
Lazarusda mı denediniz?

Evet lazarusda denedim.

Kaan hocam versiyon kaçtır?

Lazarus 2.0.0 versiyonu

İlginiz için teşekkür ediyorum.
Kurulumlara tekrar bakacağım.

Selamlar.

Bileşen bağlantılarını ve ayarlarını aşağıdaki ile kontrol edin:

pqconnection:
databasename
hostname
username
password
transaction
connected

Transaction:
database
active

query:
database
transaction
active

datasource:
dataset

dbgrid:
datasource

Sql cümleninizi select * from table şeklinde deneyiniz.

İşletim sistemini yeniden kurdum.
PostgreS, dbeaver ve Lazarusu da kurdum.
Netice böyle.

object Form1: TForm1
  Left = 337
  Height = 576
  Top = 215
  Width = 609
  Caption = 'Form1'
  LCLVersion = '2.0.0.4'
  object ZConnection1: TZConnection
    ControlsCodePage = cCP_UTF8
    AutoEncodeStrings = False
    Connected = True
    HostName = 'localhost'
    Port = 0
    Database = 'db_ali'
    User = 'u_ali'
    Password = 'abc'
    Protocol = 'postgresql'
    left = 42
    top = 27
  end
  object ZQuery1: TZQuery
    Params = <>
    left = 48
    top = 112
  end
  object ZTable1: TZTable
    Connection = ZConnection1
    TableName = 'public.kullanicilar'
    left = 200
    top = 27
  end
end

sqldb paletindeki bileşenleri kullanmayı deneyiniz.

Merhaba;
Denemediğim bileşen kalmadı.
Tekrar deneyim.

Bileşene alanları eklemek zorunda değilsiniz. Kodda kullanacaksanız fieldby şeklinde kullanabilirsiniz.
Not: Normalde SQLdb paletindeki bileşenlerde sorunsuz kullanıyorum.

Merhaba;

create table AA(
   okytno               serial          NOT NULL,
        constraint pk__AA__okytno primary key(okytno),   
   aaa       varchar(100)    NOT NULL,
        constraint uk__AA__aaa unique (aaa),
   bbb                 boolean         NOT NULL    DEFAULT FALSE,
   ccc   timestamp       NOT NULL    DEFAULT Now()
);

insert into AA(aaa) values ('HASAN');
insert into AA(aaa) values ('HÜSEYİN');
insert into AA(aaa) values ('AHMED');

Aynı yapıyı böyle oluşturdum.
Netice:

Bu yapıda ne var bilemedim ama sanki bu “i” karakteriyle sorun var. bu lazarus veya bileşenler kafayı bunu takmışlar gibi. :slight_smile: