"SQLite: MQL5'te SQL veritabanlarıyla yerel olarak çalışma" makalesi için tartışma - sayfa 10

 
Renat Fatkhullin #:
Teşekkürler, kontrol edeceğiz.

Aynı şekilde!

ON DELETE ve ON UPDATE öğelerini de kontrol etmelisiniz:

  • EYLEM YOK
  • NULL AYARLA
  • VARSAYILANI AYARLA
  • KISITLAMA
  • CASCADE

Bu olmadan iş çok karmaşık bir hal alır.

 
Anatoli Kazharski #:

Cevabınız için teşekkürler!

Bazı nedenlerden dolayı beklediğim sonucu alamıyorum:

//---

Hata nerede?

Bu benim de ilgilenmek istediğim bir konu:

Hatamız SQLITE_DEFAULT_FOREIGN_KEYS olmadan oluşturmaktı.

Zaten düzeltildi ve çalışıyor - bu gece beta sürümünde mevcut olacak. FOREIGN KEYS ile tablonun yukarıdaki örnek için yeniden oluşturulması gerekecektir.

Paneldeki komutlara daha sonra bakacağız.

 
Renat Fatkhullin #:

Bizim hatamız SQLITE_DEFAULT_FOREIGN_KEYS olmadan derleme yapmaktı.

Zaten düzeltildi ve çalışıyor - bu gece beta olarak kullanıma sunulacak. Yukarıdaki örnek için FOREIGN KEYS içeren tablonun yeniden oluşturulması gerekecektir.

Paneldeki komutlara daha sonra bakacağız.

Teşekkür ederim! Kesinlikle test edeceğim.

 
Kısayol tuşu F9 - yürütme isteği çalışmıyor. İmleci "Yürüt" düğmesinin üzerine getirirseniz belirtilen beklentiyi görebilirsiniz. Ancak, ne imleç komut satırındayken F9'a basıldığında ne de imleç (fare işaretçisi) başka (diğer) konumlara taşındığında, belirtilen F9 çalışmaz. "Çalıştır" düğmesine basmak için fareyi kullanmak çekici değildir.
 

Merhaba,

Yine de bir şeyler doğru görünmüyor.
Bir "signals.sqlite" veritabanı oluşturdum ve var olduğuna dair onay aldım. Verileri veritabanına kaydettim ve 63 kaydın kaydedildiğine dair onay aldım. Ne yazık ki veritabanından hiçbir şey okuyamıyorum ve veritabanını kontrol ettiğimde "signals.sqlite" dosyasını bulamıyorum. Ancak, XM MT5/Bases/signals dizinini ve bu dizinde benim için okunamayan ve 3845 kb boyutunda olan "signals.dat" dosyasını buluyorum.
Soru şu ki, "signals.sqlite" dosyasını nerede bulabilirim ve bulamazsam nasıl düzenleyebilirim?

XM MT5 yapı 3521 kullanıyorum

 
Zbigniew Mirowski .sqlite" veritabanı oluşturdum ve var olduğuna dair onay aldım. Verileri veritabanına kaydettim ve 63 kaydın kaydedildiğine dair onay aldım. Ne yazık ki veritabanından hiçbir şey okuyamıyorum ve veritabanını kontrol ettiğimde "signals.sqlite" dosyasını bulamıyorum. Ancak, XM MT5/Bases/signals dizinini ve bu dizinde benim için okunamayan ve 3845 kb boyutunda olan "signals.dat" dosyasını buluyorum. Soru şu ki, "signals.sqlite" dosyasını nerede bulabilirim ve değilse nasıl düzenleyebilirim? XM MT5 yapı 3521
kullanıyorum

DATABASE_OPEN_COMMON bayrağınıkullanmadığınız sürece dosya genellikle "<data folder>\MQL5\Files" içinde saklanır.

"signals.dat" dosyasının SQLite ile hiçbir ilgisi yoktur.

 
Fernando Carreiro #:

DATABASE_OPEN_COMMON bayrağınıkullanmadığınız sürece dosya genellikle "<data folder>\MQL5\Files" içinde saklanır.

"signals.dat" dosyasının SQLite ile hiçbir ilgisi yoktur.

Merhaba Fernando, cevap için teşekkürler

Açıklamada olduğu için bekliyordum ama maalesef dosyalar dizini boş ve veritabanını bu komutla oluşturdum:

dosya adı="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

örneğin DATABASE_OPEN_COMMON bayrağı ile


DATABASE_OPEN_COMMON

Dosya tüm terminallerin ortak klasöründedir


II nasıl yorumlanmalı?
 

@Zbigniew Mirowski #: I expected it, because it is in the description, but unfortunately the files directory is empty and I created the database with this command:

filename="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

örneğin DATABASE_OPEN_COMMON bayrağı ile

DATABASE_OPEN_COMMON

Dosya tüm terminallerin ortak klasöründedir

II nasıl yorumlanır?

O zaman bunu"%APPDATA%\MetaQuotes\Terminal\Common\Files" içinde bulacaksınız.
 
Fernando Carreiro #:
Sonra"%APPDATA%\MetaQuotes\Terminal\Common\Files" içinde bulacaksınız.

Şimdi yeni bir sorunum var. Hatanın belki de bu MT5'i Program dosyalarındaki C sürücüsüne kurmamdan kaynaklandığı ve belki de yeni Win11'de bazı erişim kısıtlamaları olduğu sonucuna vardım. Bu yüzden başka bir diske yeni bir örnek, yeni bir demo hesabı kurdum ve bu veritabanını oraya yüklemeye çalıştım ve ... Şunları aldım:
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) veritabanı hatası, Signals tablosu zaten mevcut.
Bir veritabanı oluştururken, hemen tablolar oluşturuyorum. Create hata vermiyor, çünkü veritabanını da açıyor, ancak tablo oluşturmak hata veriyor.
Tüm bilgisayarı aradım ve "signals.sqlite" dosyaları bulunamadı, ancak "signals.dat" dosyasını tekrar buldum

Vay canına, "signals.sqlite" dosyasını buldum

C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

"signals.sqlite" dosyasında sadece yapı var ve signals.dat dosyasında veri olduğundan şüpheleniyorum

C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

 
Zbigniew Mirowski #: Vay canına, "signals.sqlite" dosyasını buldum C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

Ama tam olarak nerede bulacağınızı söylediğim yer değil mi?

Sonra "%APPDATA%\MetaQuotes\Terminal\Common\Files" içinde bulacaksınız.