"SQLite: MQL5'te SQL veritabanlarıyla yerel olarak çalışma" makalesi için tartışma - sayfa 10
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Teşekkürler, kontrol edeceğiz.
Aynı şekilde!
ON DELETE ve ON UPDATE öğelerini de kontrol etmelisiniz:
Bu olmadan iş çok karmaşık bir hal alır.
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.
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.
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
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.
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?
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
Ama tam olarak nerede bulacağınızı söylediğim yer değil mi?