Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sp_Procedure Kontrol Etmek
#11
Döngüye nasıl dahil edebilirim?

procedure TForm1.BitBtn3Click(Sender: TObject);
var
  sList,TrkKontrol:String;
begin
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=False;
Button5.Enabled:=False;
Button6.Enabled:=False;
//Button7.Enabled:=False;
Button8.Enabled:=False;

// Buraya ekledim kontrol ama döngüye girmediği için bir işe yaramadı ///
IF TrkKontrol=('SELECT * FROM sys.objects WHERE type = ''P'' AND OBJECT_ID = OBJECT_ID(''dbo.Sp_Emanettrk'')') Then
  Begin
  GroupBox1.Visible:=True;
  Button7.Enabled:=True;
ShowMessage('Yok');
Abort
  End
  Else
  Begin
  Button7.Enabled:=False;
  End;
//////////

KONTROL.SQL.Text:='SELECT * FROM information_schema.tables WHERE table_name = ''TBLEMANET'''+
                 'OR table_name = ''TBLEMANETPARAM'' '+
 'OR table_name = ''TBLEMANETIPTFAT'' '+
 'OR table_name = ''TBLEMANETIPTSTH'' '+
 'OR table_name = ''TBLEMANETEFAT'' ' +
 'OR Object_Name = ''SP_EMANETTRK'' ' +
 'OR Object_Name = ''EMANETTRK'' ';

KONTROL.Open;
KONTROL.First;

sList := '';
TrkKontrol :='';
WHILE NOT KONTROL.Eof  DO
 BEGIN
sList := sList +  KONTROL.FieldByName('table_name').ASString + '###';
sList := sList +  KONTROL.FieldByName('Object_Name').ASString + '###';
 KONTROL.NEXT;
End;

///////////////// TBLEMANET/////////////////////////
if not POS( 'TBLEMANET###', sList ) >= -1  then
Begin
GroupBox1.Visible:=True;
Button2.Enabled:=True;
                      Mesaj;
                      Abort
End
Else
if not POS( 'TBLEMANET###', sList ) < -1  then
Button2.Enabled:=False;
/////////////////////////////////////////////////////////
///////////////// TBLEMANETPARAM/////////////////////////
if not POS( 'TBLEMANETPARAM###', sList ) >= -1 then
Begin
GroupBox1.Visible:=True;
Button3.Enabled:=True;
                      Abort
End
ELSE if not POS( 'TBLEMANETPARAM###', sList ) < -1 then
Button3.Enabled:=False;

Cevapla
#12
Arkadaşlar bu şekilde "Object" hatası veriyor.  Bu satırı nasıl kullanabilirim?


 TrkK  := TrkK +  KONTROL.SQL.Object('Object_Name').ASString + '###';


sList := '';
TrkK :='';
WHILE NOT KONTROL.Eof  DO
 BEGIN
 sList  := sList +  KONTROL.FieldByName('Table_Name').ASString + '###';
 TrkK  := TrkK +  KONTROL.SQL.Object('Object_Name').ASString + '###';

 KONTROL.NEXT;
End;
Cevapla
#13
Merhaba,
Firedac veya benzeri bir standart bileşen kullanıyorsanız SQL özeliğinin yalnızca şu metodları var.

   
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#14
Fesih Hocam öncelikle teşekkür ederim. Ben şöyle bir şart yapmam gerekiyor onu yapamadım ;
Burada tablo kontrolü yapıyor ben procedure ve func çevirmek istiyorum. 

if not POS( 'TBLEMANET###', sList ) >= -1  then
Begin
GroupBox1.Visible:=True;
Button2.Enabled:=True;
                      Mesaj;
                      Abort
End
Else
if not POS( 'TBLEMANET###', sList ) < -1  then
Button2.Enabled:=False;
Cevapla
#15
Procedure hali
procedure TForm1.EkranGuncelle(const TabloAdi, sList: String);
var
 TabloAdiVarMi: Boolean;
begin
 TabloAdiVarMi := POS(TabloAdi, sList) >= -1;
 if not TabloAdiVarMi then
 Begin
   GroupBox1.Visible := True;
   Button2.Enabled := True;
   // Mesaj;
   Abort;
 End
 else
   Button2.Enabled := False;
end;
Function hali
function TForm1.GetTabloAdivarMi(const TabloAdi, sList: String): Boolean;
var
 TabloAdiVarMi: Boolean;
begin
 TabloAdiVarMi := POS(TabloAdi, sList) >= -1;
 if not TabloAdiVarMi then
 Begin
   GroupBox1.Visible := True;
   Button2.Enabled := True;
   // Mesaj;
   Abort;
 End
 else
   Button2.Enabled := False;
 Result := TabloAdiVarMi;
end;
Procedure kullanımı
EkranGuncelle('TBLEMANET###', sList);
Function kullanımı
  if GetTabloAdivarMi('TBLEMANET###', sList) then
   ShowMessage('Tablo var')
 else
   ShowMessage('Tablo yok')
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#16
İkisi bir arada
procedure TForm1.EkranGuncelle(const TabloAdi, sList: String);
  function GetTabloAdivarMi(): Boolean;
  begin
    Result := POS(TabloAdi, sList) >= -1;
  end;

begin
  if not GetTabloAdivarMi() then
  Begin
    GroupBox1.Visible := True;
    Button2.Enabled := True;
    // Mesaj;
    Abort;
  End
  else
    Button2.Enabled := False;
end;
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#17
Fesih Hocam ,Procedure ben şu şekilde buluyorum. Yapmak istediğim tablo gibi düzenlemek.

IF TrkK=('SELECT TrkK=count(*) FROM sys.objects WHERE object_id = OBJECT_ID(N''dbo.SP_EMANETTRK'')') Then
   Begin
  GroupBox1.Visible:=True;
  Button7.Enabled:=True;
  ShowMessage('Yok');
  End
  Else
Begin
  Button7.Enabled:=False;
   ShowMessage('Var');
End;

Tam kod yapısı

KONTROL.SQL.Text:='SELECT * FROM information_schema.tables WHERE table_name = ''TBLEMANET'''+
                  'OR table_name = ''TBLEMANETPARAM'' '+
 'OR table_name = ''TBLEMANETIPTFAT'' '+
 'OR table_name = ''TBLEMANETIPTSTH'' '+
 'OR table_name = ''TBLEMANETEFAT'' ' ;

KONTROL.Open;
KONTROL.First;

sList := '';
WHILE NOT KONTROL.Eof  DO
 BEGIN
sList := sList +  KONTROL.FieldByName('Table_Name').ASString + '###';
 KONTROL.NEXT;
End;


///////////////// TBLEMANET/////////////////////////
if not POS( 'TBLEMANET###', sList ) >= -1  then
Begin
GroupBox1.Visible:=True;
Button2.Enabled:=True;
                      Mesaj;
                      Abort
End
Else
if not POS( 'TBLEMANET###', sList ) < -1  then
Button2.Enabled:=False;
Cevapla
#18
Konuyu baştan sona bir kaç defa okudum ama ne yapmak istediğinizi halen anlamadım.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#19
(16-09-2020, Saat: 17:53)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Konuyu baştan sona bir kaç defa okudum ama ne yapmak istediğinizi halen anlamadım.

Şunu yapmak istiyorum,  Tablo var mı  yok mu kontrolü yapıyorum var ise program açıyor yok ise tablo oluşturuyor. Şimdi programın içerisine SP_EMANETTRK ve EMANETTRK ler SQL de procedure ve function olarak oluşturmak istiyorum yine aynı kontrol  ile ama bir türlü bu kontrolü mevcut kontrole ekleyemedim.

Bu kod yapısı mevcut Tablo için ;

KONTROL.SQL.Text:='SELECT * FROM information_schema.tables WHERE table_name = ''TBLEMANET'''+
                  'OR table_name = ''TBLEMANETPARAM'' '+
'OR table_name = ''TBLEMANETIPTFAT'' '+
'OR table_name = ''TBLEMANETIPTSTH'' '+
'OR table_name = ''TBLEMANETEFAT'' ' ;

KONTROL.Open;
KONTROL.First;

sList := '';
WHILE NOT KONTROL.Eof  DO
BEGIN
sList := sList +  KONTROL.FieldByName('Table_Name').ASString + '###';
KONTROL.NEXT;
End;


///////////////// TBLEMANET/////////////////////////
if not POS( 'TBLEMANET###', sList ) >= -1  then
Begin
GroupBox1.Visible:=True;
Button2.Enabled:=True;
                     Mesaj;
                     Abort
End
Else
if not POS( 'TBLEMANET###', sList ) < -1  then
Button2.Enabled:=False;
Cevapla
#20
(16-09-2020, Saat: 17:57)OZCANK Adlı Kullanıcıdan Alıntı:
(16-09-2020, Saat: 17:53)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Konuyu baştan sona bir kaç defa okudum ama ne yapmak istediğinizi halen anlamadım.

Şunu yapmak istiyorum,  Tablo var mı  yok mu kontrolü yapıyorum var ise program açıyor yok ise tablo oluşturuyor. Şimdi programın içerisine SP_EMANETTRK ve EMANETTRK ler SQL de procedure ve function olarak oluşturmak istiyorum yine aynı kontrol  ile ama bir türlü bu kontrolü mevcut kontrole ekleyemedim.

Bu kod yapısı mevcut Tablo için ;

KONTROL.SQL.Text:='SELECT * FROM information_schema.tables WHERE table_name = ''TBLEMANET'''+
                  'OR table_name = ''TBLEMANETPARAM'' '+
'OR table_name = ''TBLEMANETIPTFAT'' '+
'OR table_name = ''TBLEMANETIPTSTH'' '+
'OR table_name = ''TBLEMANETEFAT'' ' ;

KONTROL.Open;
KONTROL.First;

sList := '';
WHILE NOT KONTROL.Eof  DO
BEGIN
sList := sList +  KONTROL.FieldByName('Table_Name').ASString + '###';
KONTROL.NEXT;
End;


///////////////// TBLEMANET/////////////////////////
if not POS( 'TBLEMANET###', sList ) >= -1  then
Begin
GroupBox1.Visible:=True;
Button2.Enabled:=True;
                     Mesaj;
                     Abort
End
Else
if not POS( 'TBLEMANET###', sList ) < -1  then
Button2.Enabled:=False;

Paylaştığınız kod kısmında tablo var/yok durumuna göre temel olarak bazı bileşenler enable/disable ediliyor. Tablo yoksa nasıl oluşturuyorsunuz o kısımdaki kodlarınızıda paylaşın. 

Delphi içinden kodla veritabanında SP mi oluşturmak istiyorsunuz ?  Eğer öyleyse hangi databaseyi kullanıyorsanız, sp yi database yönetim aracı ile oluşturun, sonra create scriptini kopyalayın, bunu delphi içindeki bir query nesnesinde istediğiniz şart gerçekleştiğinde çalıştırın.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Edit Kontrol DatePicker gibi Kullanma 3ddark 6 832 27-06-2020, Saat: 13:39
Son Yorum: mrmarman
  ISNULL değeri kontrol etmek OZCANK 7 1.064 25-05-2020, Saat: 20:41
Son Yorum: ihalilcoban
  Kalıtılmış Formu Değişkende Tutarak Dinamik Create Etmek LastCoder 6 1.677 14-10-2019, Saat: 12:11
Son Yorum: sadettinpolat
  Nesneler arasındaki ilşkiyi/bağlantıyı tespit etmek 41linea41 2 926 14-09-2019, Saat: 13:09
Son Yorum: 41linea41
  Json Free Etmek yhackup 4 1.787 31-07-2019, Saat: 11:17
Son Yorum: Halil Han BADEM



Konuyu Okuyanlar: 1 Ziyaretçi