2014-07-25 6 views
11

मैं अपने आवेदन को एडीओ से फायरडीएसी में माइग्रेट करने की कोशिश कर रहा हूं। मैं माइक्रोसॉफ्ट SQL सर्वर का उपयोग कर रहा हूँ। मेरा डेटाबेस सर्वर संयोजन संवेदनात्मक केस के साथ स्थापित किया गया था और डेटाबेस को आकस्मिक मामले के साथ बनाया गया था। मैंने यह कॉन्फ़िगरेशन किया क्योंकि मेरे custumers में यह कॉन्फ़िगरेशन है। लेकिन जब मैंने फायरडीएसी में माइग्रेट करने का प्रयास किया, तो फायरडीएसी ड्राइवर (एमएसएसक्यूएल) डेटाबेस संयोजन को देखता है और संपत्ति को "डेटाबेस नाम" को ऊपरी मामले में बदल देता है। उसके बाद, कई चीजें काम नहीं करतीं, क्योंकि फायरडीएसी को sysdatabase में "डेटाबेस नाम" नहीं मिला था। क्या मैं इस फ़ंक्शन को बंद कर सकता हूं जो "डेटाबेस नाम" संपत्ति को बदलता है?डेल्फी फेरेडैक - केस संवेदनशील समस्या

+0

आप FDConnection संपत्ति 'MetaCaseIns' सही पर सेट करने के लिए कोशिश की है? – Copilot

+0

हां, लेकिन काम नहीं किया। जब मैंने संपत्ति 'मेटाकेसइन्स' को सही पर सेट किया, तो फेरेडैक घटक ने डेटाबेस नाम को ऊपरी मामले में बदल दिया। मुझे जरूरत है कि डेटाबेस नाम टाइप की तरह रहें। – user3877647

+0

मैं इस विषय को तुरंत फायरडीएसी के लेखक को भेज रहा हूं, उम्मीद है कि वह कुछ कहेंगे। –

उत्तर

0

मुझे लगता है कि फ़ायरडीएसी डेटाबेस तक पहुंचने के लिए ansi uppercase रूपांतरण का उपयोग कर रहा है, जो बदले में एमएसएसक्यूएल के साथ समस्याएं पैदा करता है। मेरे मामले में यह तुर्की था। मैंने फिक्स को आसान पाया। TFDConnection की OnBeforeConnect में मैं प्रयोग किया है:

Params.Database := TRUpperCase(Params.Database); 

कहाँ TRUpperCase (मैं के बजाय मैं मैं करने के लिए मैं जैसे,) एक समारोह है कि ठीक से धर्मान्तरित तुर्की वर्ण अपरकेस में है।

1

मुझे लगता है कि आप MetaCaseInsCat कनेक्शन पैरामीटर की तलाश में हैं। सूची नाम केस संवेदनशीलता autodetection अक्षम करें और इसे सेट अप केस संवेदी होने के लिए करने के लिए प्रयास करें:

... 
FDConnection1.Params.Add('MetaCaseInsCat=True'); 
FDConnection1.Connected := True; 
0

यह ओ पी के लिए एक सीधा जवाब नहीं है, लेकिन यह मेरे जैसे भविष्य प्रोग्रामर जो में मामला संवेदनशीलता के साथ समस्या आ रही है मदद मिल सकती है फायरडीएसी

मैं एमएसएसक्यूएल के साथ फायरडीएसी का उपयोग कर रहा हूं। आदेश 'की तरह' एक TFDQuery फ़िल्टर में एक गैर caseSensitive तरह से उपयोग करने के लिएः TFDQuery.FilterOptions

procedure TFDQuery_MyVersion.SetFilterText(const Value: string); 
begin 
    FilterOptions := [TFilterOption.foCaseInsensitive]; 

    inherited SetFilterText(TOldDatabaseSystemToMSSQL.Filter(Value)); 
end; 
संबंधित मुद्दे