Microsoft Great Plains Dexterity'de "Passthrough" SQL deyimlerini ve "Range Where" yan tümcelerini yazma
Bu makalede, Microsoft Dynamics GP Dexterity'de Geçiş SQL deyimlerinin ve Range Where yan tümcelerinin nasıl yazıldığı açıklanmaktadır.
Şunlar için geçerlidir: Microsoft Dynamics GP
Özgün KB numarası: 910129
Dexterity'de Passthrough SQL deyimleri ve Range Where yan tümceleri yazdığınızda Transact SQL kodunun tüm bölgesel ayarlar ve sıralama düzenleriyle uyumlu olduğundan emin olun. Ayrıca, Microsoft SQL Server geçirilen alan değerlerinin doğru işlenmiş olduğundan emin olun. Aşağıdaki yöntemleri kullanabilirsiniz:
Microsoft SQL Server'a bir tarih değeri geçirmek istiyorsanız, tarihin
Dexterity sqlDate()
YYYYMMDD biçiminde olduğundan emin olmak için genel işlevi kullanın. işlevini kullanırsanızDexterity str()
, program bölgesel ayarlara bağlı olarak AA/GG/YYYY biçimini veya DD/AA/YYYY biçimini kullanır. SQL Server DD/AA/YYYY biçimini kabul etmez çünkü bu biçim her ayın 12. gününden sonra oluşan aralıklı hatalara neden olabilir.Not
İşlev,
sqlDate
tarihi SQL Server geçirdiğinizde gereken tek tırnak işaretlerini eklemez. Bu nedenle, tek tırnak işaretlerini kullanarak işlevin sonucunu içine alın.SQL Server bir dize değeri geçirmek istiyorsanız, dizelerin
Dexterity SQL_FormatStrings()
tek tırnak içine sarmalandığından emin olmak için genel işlevi kullanın. Dizede tek bir tırnak işareti varsa, dizenin erken sonlandırmasını durdurmak için ikinci bir tek tırnak işareti eklemeniz gerekir.Bir dize alanındaki en düşük ve en yüksek değerler arasında bir aralık seçildiğinde, Dexterity tarafından kullanılan maksimum değer SQL Server için doğru maksimum değer olmayabilir. SQL Server için doğru maksimum değer sıralama düzenine ve SQL Server örneğinin harmanlama düzenine bağlıdır. Dexterity fill komutunu kullanarak, program dizenin uzunluğu için ASCII 255 kullanarak alanı doldurur. Ancak sıralama düzenine bağlı olarak ASCII 255 en yüksek değer olmayabilir. Bu nedenle where yan tümcesi hiçbir sonuç döndürmez. ASCII 255 için en büyük değer ÿ 'dir (umlaut ile küçük harf y). Bu karakter, bazı SQL sıralama düzenleri tarafından Y olarak değerlendirilir. Bu, aralığın sonunun MSSQL'de Y olarak ayarlandığı ve Z karakteriyle başlayan hiçbir şeyin aralığa dahil olmadığı anlamına gelir. Aşağıdaki Dexterity kodu, bir sistemin sıralama düzeni için en yüksek karakter değerini elde etmek için komutunu kullanan
system 9600
bir örnektir. Kod daha sonra where yan tümcesi oluşturmak için bu değeri kullanır.local string l_MaxChar; local integerl_Result,l_Length; system 9600, table SOP_HDR_WORK, l_MaxChar, l_Result; if empty('End Location Code') or filled('End Location Code') then fill 'End Location Code'; l_Length = length('End Location Code'); clear 'End Location Code'; 'End Location Code' = pad('End Location Code', TRAILING, l_MaxChar, l_Length); end if; range table SOP_HDR_WORK where physicalname('Location Code' of table SOP_HDR_WORK) + CH_SPACE + CH_GREATERTHAN + CH_EQUAL + CH_SPACE + SQL_FormatStrings('Start Location Code') + CH_SPACE + SQL_AND + CH_SPACE + physicalname('Location Code' of table SOP_HDR_WORK) + CH_SPACE + CH_LESSTHAN + CH_EQUAL + CH_SPACE + SQL_FormatStrings('End Location Code');
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin