Tarih biçimi AMERICAN tarih biçimini, visual FoxPro ODBC sürücüsü sorgu başarısız olur.

Makale çevirileri Makale çevirileri
Makale numarası: 229854 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Visual FoxPro tabloları Visual FoxPro ODBC sürücüsü kullanan bir ODBC sorgusu çalıştırırken, hiçbir kayıt, döndürülen WHERE yan tümcesi AMERICAN tarih biçimindeki bir tarihi içerir.

Neden

Visual FoxPro ODBC sürücüsü, yalnızca bir katı AMERICAN tarih biçimindeki tarihler kabul eder.

Çözüm

SELECT SQL deyiminin WHERE yan tümcesinde bir AMERICAN tarih biçimine geçirilir herhangi bir tarih dönüştürün.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Varsayılan Visual FoxPro tarih AMERICAN ayardır. Tarih biçimleri, ancak aşağıdaki biçimler için ayarlanmış olabilir:
Bu tabloyu kapaBu tabloyu aç
Tarihi ayarlamaTarih biçimi
americanaa/gg/yy
ANSIyy.mm.dd
İNGİLİZ/FRANSIZ gg/aa/yy
Almancadd.mm.YY
İtalyancagg-aa-yy
japanyy/aa/gg
taiwanyy/aa/gg
A.B.D.aa-gg-yy
mdyaa/gg/yy
dmygg/aa/yy
ymdyy/aa/gg
KISAKısa tarih biçimi Windows Denetim Masası Kısa Tarih ayarıyla belirlenir.
LongUzun tarih biçimi Windows Denetim Masası uzun tarih ayarıyla belirlenir.

Davranışı yeniden oluşturma adımları

  1. "Aşağıdaki kodu kullanarak Odbctest.prg" adlı bir program dosyası oluşturun:
    CLEAR
    DO CASE
       CASE "6.0"$VERSION() 
          lcConnStr="DRIVER={Microsoft Visual FoxPro Driver};" + ;
             "Exclusive=No;SourceType=DBF;SourceDB="+HOME(2)+"DATA"
       CASE "5.0"$VERSION()
          lcConnStr="DRIVER={Microsoft Visual FoxPro Driver};" + ;
             "Exclusive=No;SourceType=DBF;SourceDB="+HOME()+"SAMPLES\DATA"
       CASE "3.0"$VERSION()
          lcConnStr="DRIVER={Microsoft Visual FoxPro Driver};" + ;
             "Exclusive=No;SourceType=DBF;SourceDB="+HOME()+"SAMPLES\DATA"
             OTHERWISE && Version is VFP 7.0,8.0, or 9.0
             lcConnStr="DRIVER={Microsoft Visual FoxPro Driver};" + ;
             "Exclusive=No;SourceType=DBF;SourceDB="+HOME(2)+"DATA"
    ENDCASE
    
    *!* Create An ADO Connection
    
    oConnection=CREATEOBJECT("ADODB.Connection")
    oConnection.ConnectionString = lcConnStr
    oConnection.CursorLocation   = 3
    oConnection.OPEN
    
    * lcSQL="SELECT * FROM ORDERS WHERE ORDER_DATE < {07/22/93}"
    lcSQL="SELECT * FROM ORDERS WHERE ORDER_DATE < {93/07/22}"
    *!* Create An ADO recordset
    rs=CREATEOBJECT("ADODB.Recordset")
    rs.activeconnection         = oConnection
    rs.CursorLocation           = 3
    rs.cursortype               = 1
    rs.LockType                 = 3
    rs.OPEN(lcSQL)
    IF !rs.EOF
       rs.movefirst
       DO WHILE !rs.EOF
          ? rs.FIELDS(0).VALUE
          rs.movenext
       ENDDO
    ENDIF
    rs.CLOSE
    oConnection.CLOSE 
    					
  2. Hiçbir kayıt döndürdü görüntülenen veya inceleyin.
  3. Aşağıdaki kod satırını açıklama:
    lcSQL="SELECT * FROM ORDERS WHERE ORDER_DATE < {93/07/22}"
    					
  4. Aşağıdaki kod satırını uncomment:
    lcSQL="SELECT * FROM ORDERS WHERE ORDER_DATE < {07/22/93}"
    					
  5. Programı yeniden çalıştırın ve veri döndürdü ve ekranda görüntülenen şekilde inceleyin.

Özellikler

Makale numarası: 229854 - Last Review: 12 Şubat 2007 Pazartesi - Gözden geçirme: 4.4
Bu makaledeki bilginin uygulandığı durum:
  • Visual FoxPro 5.0 için Microsoft Open Database Connectivity Sürücüsü
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 3.0b Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft Visual FoxPro 7.0 Professional Edition
  • Microsoft Visual FoxPro 8.0 Professional Edition
  • Microsoft Visual FoxPro 9.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbdatabase kbprb KB229854 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:229854

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com