Sayın hocalarım mssqldeki bilgileri formatlınotepade aktarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Sayın hocalarım mssqldeki bilgileri formatlınotepade aktarma

Mesaj gönderen Karamizrak »

Selamlar saygılar. Mssql serverdaki bilgileri edit lere ordanda notepad e yazmalıyım ama yazılacak alanların notepad üzerinde ben belirlemeliyim yani stok_kodu alanındaki bilgiler text dosyanın 20. sutununa stok_adı alanındaki bilgiler 30. sutuna diye sıralamalıyım. Sonuç itibarı ile sayın abilerim benim istediğim, bilgiler mssqlden editler içine alınıyor, tek tek sonra bu secilenler access a aktarılıyor access dan not defterine aktarıyorum su kod ile

Kod: Tümünü seç

var
Sayac : Integer;
S : String;
begin
Sayac := 0;
S := '';
JvRichEdit1.Clear;
ADOTable1.Close;
ADOTable1.Open;
ADOTable1.First;
While not ADOTable1.Eof do
begin
S := '  ';
For Sayac := 0 to ADOTable1.Fields.Count -1 do
begin
S := S+ ADOTable1.Fields[sayac].Text + ' ';
End;
ADOTable1.Next;
JvRichEdit1.Lines.Add(S);
End;
JvRichEdit1.Lines.SaveToFile('.\xxx.ftx');
end;
ama benim istediğim sey bu not defterine stok adı 1. satır 20. sıra stok kodu 1. satır 30. sıra satıs fiyatı1 1. satır 40. sıra diye dongusel bir sey kurmak yani tek tek boyle tanımlamayacam access dan her gelen kayıt bir sonraki satırda ilgili sıralarda olacak. Saygılar yardımlarınız için tesekkurler.
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Arkadaslar yardımcı olurmusunuz su sorunu giderelim. Lütfen.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Net olarak yapmak istediğinizi anlatın. Anladığım kadarıyla stok kodu 29 karakter yer kaplasın demek istemişsiniz. Bu şöyle çözebilirsiniz.

Kod: Tümünü seç

S := S+ copy(ADOTable1.Fields[sayac].Text + '                               ',1,30);
Burada her field aynı uzunlukta yer kaplayacaksa sorun yok ama eğer hepsinin boyu faklı olacaksa fieldları tek tek yazmanız gerekir.

Asıl merak ettiğim konu neden acsess'ı buraya karışıtırıyorsunu? Direk SQL serverdan alın verileri. Hattada düzenlenmiş bir text yapısı olarak bile çekebilirsiniz kayıtları.
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Sayın hocam benim yapmak istediğim

Kod: Tümünü seç

stok_adı               stok_kodu          satis_fiati1                    satis_fiati2                    satis_fiati3     barkod1     barkod2     barkod3
programın ürettiği gibi olan bir text dosyası var, biz bu dosya üzerinde rakamlarda değişiklik yapıp tekrar başka bir programa okutuyoruz ben bu işlemi program haline getirip mssqlden cektiğim stok bilgilerini örneğin satis_fiyat2 olan bilgiyi düzenleyerek sadece text dosyaya aktarmak istiyorum veritabanında değişiklik yapılmadan. ayrıca bu text dosyayya aktarılan bilgiler arasında boşluk sayıları farklı bilgiler kaymadan text dosya olusturmalıyım. Birde access kullanmamdaki amaç muhasebe programının ürettiği text dosyayı bozmadan yeni dosya oluşturmaktı ama aslında buna gerek yok sanırım dedğiniz dogru access e gerek yok mssqlden direk bilgileri cekip text e yazdırılabilir ama su formatlı yazma olayını nasıl yapabilirim yani ilgili sutunlara ilgili tablodaki bilgileri nasıl yazdırabilirim. Yardımlarınız için tesekkur ederim Saygılar.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Yapmak istediğinz sabit sütun genişliği. Öncelikle sütun uzunluklarını belirleyin. mesala stok kodu 10 hane olsun. o zaman stok kodunua 10 tane boşluk ekleyip ilk 10 karekterini alacağız. stok_adi 15 karekterse 15 boşluk ekleyip ilk 15 karekteri alacağız.
MSSQLE bir query yazın.

Kod: Tümünü seç

select concat(copy(stok_kodu+"          ", 1,10),copy(stok_adi+"               ", 1,10)) as veri from stoklar

Kod: Tümünü seç

var 
begin 
JvRichEdit1.Clear; 
ADOTable1.Close; 
ADOTable1.Open; 
ADOTable1.First; 
While not ADOTable1.Eof do 
begin 
JvRichEdit1.Lines.Add(ADOTable1.Fieldbyname('veri')); 
ADOTable1.Next; 
End; 
JvRichEdit1.Lines.SaveToFile('.\xxx.ftx'); 
end
buda delphi kodun olur sanırım.
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Hocam merhaba cok özür dileyerek rahatsız ediyorum ama sql içerisinde contact komutunu bulamadım. birde bana msn adresini verebilirsen msn üzerinden online gorusek de su problemimi cozsek. benim msn adresim karamizrak@akdeniz.edu.tr
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Concat MYSQL veya Oracle diye hatırlıyorum ben .
@mkysoft hocamın dalğınlığına gelmiş olabilir.

Concat birleştir anlamında bildiğim kadarı ile MS temelli sistemlerde, + ile bu iş yapılıyor.
ORACLE’de || operatörü veya CONCAT fonksiyonu ile bu iş yapılabiliyor bildiğim kadarı ile.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

evet, ben mysql için yazmışım pardon. düzelten arkadaşa teşekkürler.
Cevapla