Delphi Can
Text alan tanımlaması hk. - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Text alan tanımlaması hk. (/showthread.php?tid=2801)

Sayfalar: 1 2


Text alan tanımlaması hk. - cmenevse - 23-10-2018

Delphi 7 ve Firebird de geliştirdiğim programımın konusu pdf'ten aldığım veriyi clipboard a alarak firebird tabloma kaydetme ve bunu arama şeklinde tablom aşağıdaki gibi yanlız tbl_dosya tablosunun dosya alanında arama yaparken kayıt listelenmiyor? Direk kopyala yapıştır yaparak pdf içeriğini memoya oradan query ile insert sqlle sorunsuz bir şekilde kaydediyorum. Fakat satırlar ve başlıklar da alt alta sıralı olduğundan bu tbl_dosyadaki dosya alanı gridde de listelenemiyor ve arama da yapılamıyor. insert sql de memo içindeki kaydı memo1.text şeklinde alıyor ve sorunsuz kaydediyorum. Konu hakkında mongodb önerildi fakat delphi 7 de bir örnek bulamadım ilgili arkadaşlara şimdiden teşekkürler.
CREATE TABLE TBL_DOSYA (
    DOSYA_NO          INTEGER NOT NULL,
    BIRIM_NO           INTEGER,
    TARIH                 DATE,
    SAYI                   VARCHAR(40),
    KONU                 VARCHAR(100),
    KLASOR_NO        INTEGER,
    DOSYA                VARCHAR(2500),
    ACIKLAMA           VARCHAR(255)
);
butona yazdığım sql
SELECT * FROM TBL_DOSYA WHERE DOSYA LIKE '%A%' 
şeklinde??


Text alan tanımlaması hk. - yhackup - 23-10-2018

dosya field'ında A harfi geçen bir kayıt var mı ?


Cvp: Text alan tanımlaması hk. - cmenevse - 23-10-2018

(23-10-2018, Saat: 15:21)yhackup Adlı Kullanıcıdan Alıntı: dosya field'ında A harfi geçen bir kayıt var mı ?

birçok kaydım var fakat varchar(2500) ondan olabilir mi?


Text alan tanımlaması hk. - yhackup - 23-10-2018

2500'mü arkadaki 2 sıfırı yanlışlılkla eklemediniz değil mi ?


Cvp: Text alan tanımlaması hk. - cmenevse - 23-10-2018

(23-10-2018, Saat: 16:17)yhackup Adlı Kullanıcıdan Alıntı: 2500'mü arkadaki 2 sıfırı yanlışlılkla eklemediniz değil mi ?

varchar(2500) bir A4 'deki tüm karakterleri alması amacıyla


Text alan tanımlaması hk. - yhackup - 23-10-2018

(23-10-2018, Saat: 16:24)cmenevse Adlı Kullanıcıdan Alıntı:
(23-10-2018, Saat: 16:17)yhackup Adlı Kullanıcıdan Alıntı: 2500'mü arkadaki 2 sıfırı yanlışlılkla eklemediniz değil mi ?

varchar(2500) bir A4 'deki tüm karakterleri alması amacıyla

Firebird'de LONGBLOB alan türü yok mu


Cvp: Text alan tanımlaması hk. - cmenevse - 23-10-2018

(23-10-2018, Saat: 17:06)yhackup Adlı Kullanıcıdan Alıntı:
(23-10-2018, Saat: 16:24)cmenevse Adlı Kullanıcıdan Alıntı: varchar(2500) bir A4 'deki tüm karakterleri alması amacıyla

Firebird'de LONGBLOB alan türü yok mu

LONGBLOB yok ama blob(text) bir deneyeyim


Text alan tanımlaması hk. - masteryoda - 23-10-2018

SELECT * FROM TBL_DOSYA WHERE DOSYA LIKE '%A%' bunu delphide yazdığınız programda değilde ibexpert, dbeaver v.b db manager programlarında da test ettiniz mi?


Text alan tanımlaması hk. - mcuyan - 23-10-2018

Ben bir çok projemde VarChar(2500) kullandım herhangi bir sıkıntı yada yavaşlık görmedim.

Sizde farklı bir sorun var bence..


Text alan tanımlaması hk. - yhackup - 24-10-2018

emin değilim ama örneğin db forge studio da stringleri '' ile değil "" ile belirtmek gerekiyor bir de böyle dener misin.

Yukarıda bahsettiğim alan ile ilgili durum bu sorgu ile ilgili değildi.

Yanlışsam düzeltin ama aradaki fark şu en azından ben öyle biliyorum

Varchar(2500) dediğinizde db'de o alan için yer ayrılır ister kullanın ister kullanmayın dbde o kadar yer hazırda bekletilir.
2500 karakter için 2501 byte yer ayrılır ister kullanın ister kullanmayın.
https://dev.mysql.com/doc/refman/8.0/en/char.html

Blob türü alanında durum böyle değildir. siz yazdığınız veri kadar yer ayrılır.
2000 karater varsa 2001 byte, 10 karakter varsa 11 byte
https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html

Pardon Char ile Varcharı karıştırdım