[SORU]-MySQL SP Değişkenler Hk
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
[SORU]-MySQL SP Değişkenler Hk
S.A. arkadaşlar,
MySQL 5.
SP ile iki veya daha fazla table dan verileri çekip farklı değişkenlere nasıl aktarabilirim ?
Acaba basit bir örnek verebilecek bir arkadaş varmı acaba ?
S.A.
MySQL 5.
SP ile iki veya daha fazla table dan verileri çekip farklı değişkenlere nasıl aktarabilirim ?
Acaba basit bir örnek verebilecek bir arkadaş varmı acaba ?
S.A.
Herkes cahildir, bazi konularda.
Re: [SORU]-MySQL SP Değişkenler Hk
Merhaba ,
Yapmak istediğiniz şeyi basit bir şekilde kurgulandırabilirmisiniz ?
Örneğin bir SELECT ifadesi sonucunda gelen tüm kayıtlar içinde dolaşıp ..... işlemleri yapmak istiyorum gibi.
Yapmak istediğiniz şeyi basit bir şekilde kurgulandırabilirmisiniz ?
Örneğin bir SELECT ifadesi sonucunda gelen tüm kayıtlar içinde dolaşıp ..... işlemleri yapmak istiyorum gibi.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: [SORU]-MySQL SP Değişkenler Hk
S.A.vkamadan yazdı:Merhaba ,
Yapmak istediğiniz şeyi basit bir şekilde kurgulandırabilirmisiniz ?
Örneğin bir SELECT ifadesi sonucunda gelen tüm kayıtlar içinde dolaşıp ..... işlemleri yapmak istiyorum gibi.
Hocam, A Table dan istediğim gibi verileri çektim. Çektiğim bu verileri başka bir Table olan B ile bazı şeyleri kontrol
edip eğer istediğim sonuç doğru ise o kaydı getirmek istiyorum. (Çoklu satır olacak- Cari Ekstre gibi ) .
Bu arada hocam bütün raporları SP ile hazırlatıyorum ve çekiyorum !!! Bu işlem daha hızlı ve güvenlidir değil mi?
Proje uzak bağlantı (İnternet) üzerinden çalışacak !
Ana sistem ne özelliklerde olmalı ? En az kaç GB internet bağlantı hızı gerekli ?
Sevgiler, Saygılar
S.A.
Herkes cahildir, bazi konularda.
Re: [SORU]-MySQL SP Değişkenler Hk
Merhaba ,
Çekilen veriseti üzerinde gezinme işlemini CURSOR yardımı ile yapabilirsiniz örneğin ;
Yukarıdaki örneği istediğiniz gibi düzenleyin , bence CREATE TEMPORARY TABLE deyimiyle geçici tablo oluşturun cursor içinde uygun kayıtları bu tabloya insert edin ve prosedürün en sonunda bu geçici tabloyu select edin.
Uzaktan kullanımlarda veri nekadar az gelip giderse performans okadar artar bu durumda yükü stored rutinlerle Vt tarafına yıkmak en mantıklısı olacaktır,
ram ve bant genişliği olayı tamamen uygulamanıza bağlı, örneğin bizim yaptığımız bir çalışmada 35 kullanıcının yoğun olarak raporlar alıp veri girdiği bir sistem için HP nin 8 GB ramli 4 çekirdekli işlemcili modelini kullanmıştık, my.ini yi çok iyi ve bilinçli bir şekilde ayarlamak olayın en önemli adımıdır.
Umarım fikir verici olmuştur iyi çalışmalar.
Çekilen veriseti üzerinde gezinme işlemini CURSOR yardımı ile yapabilirsiniz örneğin ;
Kod: Tümünü seç
CREATE PROCEDURE `sp_hareket_test`
(
IN `hes_kod_in` varchar(20)
)
BEGIN
DECLARE bitti INT DEFAULT 0;
DECLARE TL DECIMAL(13,2);
DECLARE DVZ DECIMAL(13,2);
DECLARE ACIKLAMA VARCHAR(20);
DECLARE KAYIT CURSOR FOR SELECT tl_tutar , dvz_tutar , aciklama FROM hareket where hesap_kodu=hes_kod_in;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET bitti = 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET bitti = 1;
OPEN KAYIT;
WHILE NOT bitti DO
FETCH KAYIT INTO TL,DVZ,ACIKLAMA;
IF NOT bitti THEN
BEGIN
// Burada KAYIT isimli cursor'ün her satırı için gerekli karşılaştırma işlemlerini yapabilirsiniz
END IF;
END WHILE;
CLOSE KAYIT;
END|
DELIMITER ;
Yukarıdaki örneği istediğiniz gibi düzenleyin , bence CREATE TEMPORARY TABLE deyimiyle geçici tablo oluşturun cursor içinde uygun kayıtları bu tabloya insert edin ve prosedürün en sonunda bu geçici tabloyu select edin.
Uzaktan kullanımlarda veri nekadar az gelip giderse performans okadar artar bu durumda yükü stored rutinlerle Vt tarafına yıkmak en mantıklısı olacaktır,
ram ve bant genişliği olayı tamamen uygulamanıza bağlı, örneğin bizim yaptığımız bir çalışmada 35 kullanıcının yoğun olarak raporlar alıp veri girdiği bir sistem için HP nin 8 GB ramli 4 çekirdekli işlemcili modelini kullanmıştık, my.ini yi çok iyi ve bilinçli bir şekilde ayarlamak olayın en önemli adımıdır.
Umarım fikir verici olmuştur iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: [SORU]-MySQL SP Değişkenler Hk
S.A.
Paylaşımlarınız için çok teşekkür ederim.
Şöyle bir sorun yaşıyorum !
Yukarıdaki SP yi çalıştırdığımda
aşağıdaki hatayı veriyor. Bunun sebebi nedir?
İnanın çözemedim !
Neden veriyor böyle bir hatayı !
Sevgiler, Saygılar.
S.A.
Paylaşımlarınız için çok teşekkür ederim.
Şöyle bir sorun yaşıyorum !
Kod: Tümünü seç
CREATE DEFINER = 'root'@'localhost' PROCEDURE `cari_hesap_ekstresi`
(
IN KOD1 varchar(20),
IN KOD2 varchar(20),
IN TARIH1 date,
IN TARIH2 date,
IN FIRMA_BAGLANTI_ID int
)
BEGIN
SELECT *FROM DENEME
WHERE (DENEME.FIRMA_BAGLANTI_KODU = FIRMA_BAGLANTI_ID) AND
(DENEME.MUSTERI_KODU BETWEEN KOD1 AND KOD2) AND
(DENEME.TARIH BETWEEN TARIH1 AND TARIH2)
ORDER BY MUSTERI_KODU, TARIH;
END|
Yukarıdaki SP yi çalıştırdığımda
aşağıdaki hatayı veriyor. Bunun sebebi nedir?
İnanın çözemedim !
Kod: Tümünü seç
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.2009, 24.07.2009, 1)' at line 1
Sevgiler, Saygılar.
S.A.
Herkes cahildir, bazi konularda.
Re: [SORU]-MySQL SP Değişkenler Hk
merhaba ,
Sorun SP ye geçtiğiniz tarih parametreleriyle ilgili gibi duruyor ,
çalıştırdığınız bileşene tarih parametrelerini AsDate olarak göndermeyi deneyin, yada kendiniz elle string olarak geçiyorsanız formak varsayılan YYYY-AA-GG şeklinde olmalıdır.
Sorun SP ye geçtiğiniz tarih parametreleriyle ilgili gibi duruyor ,
çalıştırdığınız bileşene tarih parametrelerini AsDate olarak göndermeyi deneyin, yada kendiniz elle string olarak geçiyorsanız formak varsayılan YYYY-AA-GG şeklinde olmalıdır.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: [SORU]-MySQL SP Değişkenler Hk
S.A.
SQL Maestro ile çalışıyorum. hazırladığım SP yi kendi üzerinde çalıştır dediğimde
otomatik parametre ekranı geliyor.
Kod sahasına "001 ve "002" olarak giriyorum
tarih sahanısı eğer 01.01.2009 ile 31.12.2009 şeklinde hata veriyor.
ama tarih sahasını " 01.01.2009" ile " 31.12.2009" olarak girersem hata vemiyor ve sonuç dönüyor ?
Vallahi hiç bir şey anlamadım.
Delphi 'den de AsDate olarak göndersemde sonuç çıkmıyor...
MySQL tarih formatı mutlaja yyyy-aa-gg mü olmak zorunda !
Nasıl bir iş inan kafam karıştı !
S.A.
SQL Maestro ile çalışıyorum. hazırladığım SP yi kendi üzerinde çalıştır dediğimde
otomatik parametre ekranı geliyor.
Kod sahasına "001 ve "002" olarak giriyorum
tarih sahanısı eğer 01.01.2009 ile 31.12.2009 şeklinde hata veriyor.
ama tarih sahasını " 01.01.2009" ile " 31.12.2009" olarak girersem hata vemiyor ve sonuç dönüyor ?

Vallahi hiç bir şey anlamadım.
Delphi 'den de AsDate olarak göndersemde sonuç çıkmıyor...
MySQL tarih formatı mutlaja yyyy-aa-gg mü olmak zorunda !
Nasıl bir iş inan kafam karıştı !

S.A.
Herkes cahildir, bazi konularda.
Re: [SORU]-MySQL SP Değişkenler Hk
Merhaba,
MyDAC bileşenlerini kullanıyorum ve bu gibi durumlarda parametrenin tipi neyse o şekilde (örn : AsDate ) geçmek hiç bir zaman sorun çıkartmadı ,
MySQL varsayılan date_format=%Y-%m-%d şeklindedir, bunu My.ini içinden dileiğiniz formata çevirebilirsiniz.
MyDAC bileşenlerini kullanıyorum ve bu gibi durumlarda parametrenin tipi neyse o şekilde (örn : AsDate ) geçmek hiç bir zaman sorun çıkartmadı ,
MySQL varsayılan date_format=%Y-%m-%d şeklindedir, bunu My.ini içinden dileiğiniz formata çevirebilirsiniz.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: [SORU]-MySQL SP Değişkenler Hk
S.A.
hocam ne yaptıysam hata veriyor.
MyDAC kullanıyorum. ama tarih bölümünde hata verip duruyor...
Tarih alanını SQL Maestro ile 2009-07-01 şeklinde girince hata vermiyor ama sonuçta çıkmıyor !
Bu sorunu nasıl aşıcaz !!
S.A.
hocam ne yaptıysam hata veriyor.

MyDAC kullanıyorum. ama tarih bölümünde hata verip duruyor...

Tarih alanını SQL Maestro ile 2009-07-01 şeklinde girince hata vermiyor ama sonuçta çıkmıyor !
Bu sorunu nasıl aşıcaz !!
S.A.
Herkes cahildir, bazi konularda.
Re: [SORU]-MySQL SP Değişkenler Hk
TMyStoredProc yerine TMyQuery kullanın ;
Örn :
Örnek bir proje yapıp Hem TmyStoredProc ile hemde TMyQuery ile denedim , Exec yada Open metodlarının ikisindede sorunsuzca tarih parametreleri düzgün çalıştı va hata almadım.
Örn :
Kod: Tümünü seç
with MyQuery do
begin
sql.clear;
sql.add('CALL sp_test(:tarih)');
ParamByName('tarih1').AsDate := Date;
end;
Örnek bir proje yapıp Hem TmyStoredProc ile hemde TMyQuery ile denedim , Exec yada Open metodlarının ikisindede sorunsuzca tarih parametreleri düzgün çalıştı va hata almadım.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: [SORU]-MySQL SP Değişkenler Hk
S.A.
Peki hocam TMySP yerine TMyQuery kullanmam hız açısından bir sorun teşkil edermi ?
Önerinizi Şimdi deniyorum !
========================================================================
Peki hocam TMySP yerine TMyQuery kullanmam hız açısından bir sorun teşkil edermi ?
Önerinizi Şimdi deniyorum !
========================================================================
En son hi_selamlar tarafından 24 Tem 2009 12:37 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Herkes cahildir, bazi konularda.
Re: [SORU]-MySQL SP Değişkenler Hk
Hayır hız açısından bir fark olmaz
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: [SORU]-MySQL SP Değişkenler Hk
S.A. Hocam,
İlgin için çok teşekkür ederim !
SQL kodum aynı, değiştirmedim !
Ama delphi de parametre yöntemim
olarak geçiyordum.
Sistemimi şu şekilde değiştirdim.
ve çalışmaya başladı.
HOCAM BU NE SAÇMA BİR İŞ YAA.
Nedne böyle bir sorun var ki ! Neden yapıyor böyle bir hatayı !
S.A.
İlgin için çok teşekkür ederim !
SQL kodum aynı, değiştirmedim !
Ama delphi de parametre yöntemim
Kod: Tümünü seç
ParamByName('KODU').AsString:="DENEME";
Sistemimi şu şekilde değiştirdim.
Kod: Tümünü seç
Params[0].AsString:="DENEME";

HOCAM BU NE SAÇMA BİR İŞ YAA.

Nedne böyle bir sorun var ki ! Neden yapıyor böyle bir hatayı !
S.A.
Herkes cahildir, bazi konularda.