SQL Cümleciklerini Dosya içinde saklamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

SQL Cümleciklerini Dosya içinde saklamak

Mesaj gönderen Nemesis2005 »

Selam

bir database programım var ve kullanıcı kullanıdığı şirketten farlı başka bir şirket kullanmak isterse yeni bir şirket oluşturacak. Bu şirket oluşturma sırasında gerekli SQL cümleciklerini dosya içinde saklamak ve gerektiğindede bu dosyaları açıp kullanmak istiyorum. Bu sql cümleciklerinin çok uzun olanları var nasıl bir dosyalama mantığı ile saklamalıyım ki daha sonra kullanabileyim
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

1-ortak bir database oluşturup içinde saklayabilirsin
2-text dosyaya yazabilirsin
3-inifile da bile yapabilirsin
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

memo alan kullanarak istediğin vt de saklayabilirsin veya txt dosyalarında yada ini de tutabilirsin.
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Daha önce Fahrettin abi bahsetmişti bundan , şöyle yapabilirsin:

Bunun için tek bir database yeter . SIRKET diye bir ana tablo oluştur ve bunun primary key i ile diğer bütün tabloları bu ana tabloya bağla. Yani diğer tabloların hepsinde ana tablo nun primary key i foreign key olacak .

Böylece daha derli toplu bir yapı kurabilirsin. Sorgular falan daha kolay olur .

Kolay gelsin.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

SQL cümlelerini ayrı ayrı basit birer text dosya içine yazarsın. Çağırırken Query1.SQL.LoadFromFile('SQLDosya1.sql') diyerek çağırabilirsin.
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

Benim yapmak istediğim tek bir text dosya içine şirket'in tüm sql cümlecikleri olsun ve bu cümlecikleri sırası ile yükleyip çalıştırayım. ama text bir text dosya içinde sql cümleciği nerde başlıyor nerede bitiyor. nasıl anlayacağım. Örnek olarak

Kod: Tümünü seç

CREATE TABLE ARACBILGI (
    ARAC_PLAKA        VARCHAR(12) NOT NULL COLLATE PXW_TURK,
    ARAC_MARKASI      VARCHAR(50) COLLATE PXW_TURK,
    ARAC_TIPI         VARCHAR(50) COLLATE PXW_TURK,
    .
    .
    .
 );
CREATE TABLE ARACMASRAF (
    ARAC_PLAKA  VARCHAR(12) COLLATE PXW_TURK,
    TARIH       DATE,
    ACIKLAMA    VARCHAR(80) COLLATE PXW_TURK,
    KEYNO       INTEGER NOT NULL,
    MIKTAR      DOUBLE PRECISION,
    BELGENO     VARCHAR(20) COLLATE PXW_TURK,
    ISLEM       CHAR(2) COLLATE PXW_TURK,
    KDV         DOUBLE PRECISION
);
CREATE TRIGGER DEPOTANIM_BI FOR DEPOTANIM
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.DP_KEYNO IS NULL) THEN
    NEW.DP_KEYNO = GEN_ID(GEN_DEPOTANIM_ID,1);
END;
Gibi farklı uzunluktaki sql cümleciklerini query nesnesine yükleyip çalıştırmayı düşüyorum. Readln ile satır satır okutup çekebilirim. ama SQL cümleciği nerede başlayıp nerede bitiyor?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Tek dosyaya hepsini...? İyi bir yöntem değil. INI kullan o zaman.
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

Bir çözüm buldum. Ne kadar doğru olur bilmiyorum tabi. Text Dosyanın ilk satırı okunacak SQL satırının kaç satırdan oluştuğunu gösteren değer

Kod: Tümünü seç

3
CREATE TABLE ARACBILGI (
    ARAC_PLAKA        VARCHAR(12) NOT NULL COLLATE PXW_TURK,
    ARAC_MARKASI      VARCHAR(50) COLLATE PXW_TURK,
    ARAC_TIPI         VARCHAR(50) COLLATE PXW_TURK);
9
CREATE TABLE ARACMASRAF (
    ARAC_PLAKA  VARCHAR(12) COLLATE PXW_TURK,
    TARIH       DATE,
    ACIKLAMA    VARCHAR(80) COLLATE PXW_TURK,
    KEYNO       INTEGER NOT NULL,
    MIKTAR      DOUBLE PRECISION,
    BELGENO     VARCHAR(20) COLLATE PXW_TURK,
    ISLEM       CHAR(2) COLLATE PXW_TURK,
    KDV         DOUBLE PRECISION); 
7
CREATE TRIGGER DEPOTANIM_BI FOR DEPOTANIM
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.DP_KEYNO IS NULL) THEN
    NEW.DP_KEYNO = GEN_ID(GEN_DEPOTANIM_ID,1);
END;
gibi bir uygulama nasıl olur acaba
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

hocam,bence hiç uğraşma. Direk ini file kullanman daha mantıklı
text'in içine biri girip yanlışlıkla enter tuşuna basarsa hiçbir sql çalışmaz...

Kod: Tümünü seç

sql.ini

[tablesirket]

sql=create table.......

[tablesicil]

sql=create table.....

şeklinde bir ini oluşturup istediğin gibi kullanabilirsin.

inifile diye arattırırsan detaylı kullanımı öğrenebilirsin.
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

bgoktas hocam peki iniFile başlıklarını nasıl bir mantıkla saklamamı ve çağırmamı önerirsin
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Merhaba,
Ben bahsettiğin gibi bir yöntem kullanıyorum, bu iş içinde DataFile diye bir class kullandım, ini dosyasının biraz geliştirilmiş hali, Stream yazıp okuyabiliyorsun, ayrıca şifrelerek kaydediyorsun böylece herhangi bir editörle dosyadaki sql cümlelerini okuma şansı olmuyor üçüncü bir şahsın, ama peki ben nerden bulabilirim bu classı diye sorarsan valla hatırlamıyorum şimdi nerden indirdiğimi, sanırım torry.net di. ama ben bende bulunan halini
http://metu.edu/~e122935/datafile.rar adresine yükledim. indir bir incele istersen.
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

Teşekkürler Pas dosyasını çektim inceleyeceğim.........
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

Pas dosyasını inceledim. nasıl kullandığını gösteren bir kaç kısa kod gönderirsen sevinirim. Bu arada senin kullandığın 1.12 versiyonuymuş ben internetten 1.22 versiyonunu buldum..
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Merhaba,
http://metu.edu/~e122935/SorguDuzenleyici.rar

benim sorguları düzenlemek için kullandığım basit bir program, yardımcı olur sanırım
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Mesaj gönderen Nemesis2005 »

t-hex çok teşekkürler tam istedğim şey... biraz hazıra konmuş olduk editörü bile hazır. ellerine sağlık ... benimde yardımcı olabileceğim bir konu olursa yardımcı olmaya çalışırım
Cevapla