Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
StringList en hızlı aktarım Veritabanı
#11
LIST komutu boşluklara virgül atmaz. FULLYOL alanınızdaki verilerin içinde muhtemelen virgül var...

Eğer öyle ise Delimiter parametresini ( mesela ) noktalıvirgül ile değiştirin. SQL Cümlenizdeki LIST komutunu da " LIST(FULLYOL, ';') " şeklinde kullanın
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#12


YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#13
Function Numarator(no:String):String;
var
   Nmr, Temp:String;
   i, Tmp:Integer;
Begin
   nmr := TersCevir(no);
   i:= 0;
   while i < length(no) Do
   Begin
       i := i + 1;
       if nmr[i] = '9' Then
       begin
           nmr[i] := '0';
           continue;
       End
       Else
       if (nmr[i] < '9') and (nmr[i] >= '0') Then
       Begin
           Temp := inttostr(StrToInt(nmr[i]) + 1);
           Tmp := i;
           Break;
       end;
       if nmr[i] = 'Z' Then
       begin
           nmr[i] := 'A';
           continue;
       End
       Else
       if (nmr[i] < 'Z') or (nmr[i] >= 'A') Then
       Begin
           Temp := inttostr(ord(nmr[i]));
           Temp := intToStr(StrToInt(Temp) + 1);
           Temp := Chr(StrToInt(Temp));
           Tmp := i;
           Break;
       end;
   End;
   i:= 0;
   while i < length(no) do
   Begin
       i := i + 1;
       if tmp = i Then
           if (temp[1] <= '9') and (temp[1] >= '0')  Then   /// bu satırda
               nmr[i] := temp[1]
           Else
           Begin
               nmr[i] := Temp[1];
           End;
       nmr[i] := nmr[i];
   End;

   result := TersCevir(nmr);
end;
[dcc32 Warning] fonksiyonlar.pas(895): W1036 Variable 'Tmp' might not have been initialized

bunu nasıl düzeltebilirim
Cevapla
#14
Begin'den sonraki bölümün başında Tmp := 0 diyebilirsin mesela...

Fakat bu son sorduğunuz bu konu ile ilgili değil. Bunun için forumda ayrı bir başlık açmalısınız.
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#15
(15-06-2020, Saat: 14:09)uparlayan Adlı Kullanıcıdan Alıntı: Begin'den sonraki bölümün başında Tmp := 0 diyebilirsin mesela...

Fakat bu son sorduğunuz bu konu ile ilgili değil. Bunun için forumda ayrı bir başlık açmalısınız.

çok pardon doğru yeni konu açtım zannettim

bu arada attığınız videoyu izledim aynı düzen yapıyordum ama başa alıp tekrar yapacam sonucu bildireceğim
Cevapla
#16
maalesef çok ilginç bir şeyle karşı karşıyayım 

select LIST(FULLYOL,';') AS FULLPATH from FOTOLAR ;

SQL KOMUTUNDA

D:\DENEME\0000000005-MRAT ÖZYURT KARABACAK\0000000005-GN-0008.JPG;D:\DENEME\0000000005-MRAT ÖZYURT KARABACAK\0000000005-GN-0012.JPG;D:\DENEME\0000000005-MRAT ÖZYURT KARABACAK\0000000005-GN-0017.JPG;

sonuç doğru (veritabanı görüntüsü)

ancak

 myfiles.Delimiter:=';' ;
 myfiles.DelimitedText:= SorguQuery2.FieldByName('FULLPATH').AsString;

0000000005-MRAT
ÖZYURT
KARABACAK\0000000005-GN-0008.JPG

şeklinde bölüyor
Cevapla
#17
StrictDelimiter parametresini True yapın.
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#18
(15-06-2020, Saat: 20:21)uparlayan Adlı Kullanıcıdan Alıntı: StrictDelimiter parametresini True yapın.

İŞTE BUDUR .. Teşekkür ederim sorun çözüldü..
Cevapla
#19
(12-06-2020, Saat: 11:29)eroniko Adlı Kullanıcıdan Alıntı: https://github.com/PacktPublishing/Delph...rformance/ burda örnekleri var, control f ile string list şeklinde aratın, 
hangi yöntemin ne kadar performanslı olduğunu bulabilirsiniz.
daha detaylı bilgiler bu kitapta, herkese tavsiye ederim. çok faydalı bir kitap.
https://books.google.com.tr/books/about/...edir_esc=y

4y7yd9.png

Hc0zPa.png
Söyleceklerim arkadaşın derdine derman olmayabilir.Fakat yeri gelmişken bahsedeyim.

FieldByName methodu kendi içinde, field listesinde bir arama işlemi gerçekleştiriyor.

Güncel olmayan Delphi sürümlerinde liste türündeki listede doğrusal bir arama yapılıyordu.Üst sürümlerde ise, arama işlemini hızlandırmak adına, bir hash tablosu alanı eklenmiş durumda.
FDict: TDictionary<string, TField>;

Dolayısı ile yeni sürümlerde, hız adına bu şekilde bir iyileştirme var.

Klasik bir dataset dönme kodunda, özellikle alan sayısı fazla olan datasetl'erde, hızı daha da arttırabilmek için, döngü içinde her defasında FieldByName çağırımı yapmak yerine,
index ( O(1) ) yoluyla erişmek daha hızlı sonuç verebilir.

Alanların yerinin değişmesinin ihtimali göz önünde bulundurularak, döngü başında FieldByName('Field').Index ile index elde etmek daha doğru olabilir.

Sözde Kod:
 var 
   IndexOfX : Integer; 
 begin
   IndexOfX := ADataset.FieldByName('X').Index;
   while not ADataset.Eof do
   begin
     ADataset.Fields[IndexOfX].AsXXX....
     ADataset.Next;
   end;
 end;
WWW
Cevapla
#20
@ismailkocacan;  o zaman şöylesi daha iyi bence:

var
  aField: TField;
begin
  aField := ADataset.FieldByName('Alanİsmi);
  while not ADataset.Eof do
  begin
    aField.As....
    ADataset.Next;
  end; 
end;
There's no place like 127.0.0.1
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap veritabanı kayıt serdar 2 351 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Hızlı Satış Hk. Bir Soru erdal51 3 992 19-08-2024, Saat: 11:32
Son Yorum: erdal51
  server programinda hani veritabani dogru olur. sadikacar60 4 1.177 30-01-2024, Saat: 21:06
Son Yorum: sadikacar60
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 1.853 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60
  SQL VeriTabanı Kopyalama Hk. glagher 4 1.431 10-09-2023, Saat: 14:18
Son Yorum: glagher



Konuyu Okuyanlar: 1 Ziyaretçi