1c ডেটা স্টোরেজ অস্থায়ী স্টোরেজ। অস্থায়ী স্টোরেজ. তারা কিভাবে বলা হয়?

প্রায় যেকোনো তথ্য একটি মূল্যের দোকানে সংরক্ষণ করা যেতে পারে, যেমন

... ছবি (ছবি):

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Enumerations.Types of extra Information of Objects.Image; স্টোরেজ = NewValueStorage(NewPicture, NewDataCompression()); CurrentImage.Storage = Storage.Get();

// এই জায়গায় এটি সবকিছু প্রদর্শন করে... Form Elements.PictureField1.Picture = Storage.Get(); CurrentImage.Write();

...স্প্রেডশীট নথি:

TabDoc=New TabularDocument; TabDoc.Output(FormElements.TabularDocumentField1); সঞ্চয়স্থান=NewValueStorage(TabDoc); লিখুন();

প্রক্রিয়া শেষ

স্টোরেজপ্রেস থেকে পদ্ধতি পুনরুদ্ধার (এলিমেন্ট)

TabDoc=Storage.Get(); যদি TabDoc<>Undefined ThenFormElements.TabularDocumentField1.Output(TabDoc); যদি শেষ;

প্রক্রিয়া শেষ

...অবিট্রেরি ফাইল (বাইনারী ডেটা):

XZ = NewValueStorage(NewBinaryData(file));

আটটি স্টোরেজে রাখা ডেটার কম্প্রেশন সমর্থন করে:

XZ = NewValueStorage(NewBinaryData(file),NewDataCompression(9));

... বাহ্যিক প্রক্রিয়াকরণ এবং রিপোর্টিং:

প্রক্রিয়া লোডপ্রসেসিংইনটোস্টোরেজ(প্রপসস্টোরেজ টাইপ)

কম্প্রেশন রেট = NewDataCompression(9); //9 সর্বাধিক PropsStorageType = নতুন স্টোরেজ ভ্যালুস(নতুন বাইনারি ডেটা("c:\reports\report.epf", কম্প্রেশন রেট));

প্রক্রিয়া শেষ

প্রসিডিউর স্টার্টপ্রসেসিং ফ্রম স্টোরেজ(প্রপসস্টোরেজ টাইপ)

TemporaryFileName = TemporaryFileDirectory()+"report.epf"; BinaryData = PropsStorageType.Get(); BinaryData.Write(TemporaryFileName); ExternalProcessing = ExternalProcessing.Create(TemporaryFileName); ExternalProcessing.GetForm(.Open();

প্রক্রিয়া শেষ

স্টোরেজ নিয়ে কাজ করা

যদি এটি বাইনারি ডেটা হয়, তবে এটি Get মেথড ব্যবহার করে ভ্যালু স্টোর থেকে পুনরুদ্ধার করা যেতে পারে এবং Write() পদ্ধতি ব্যবহার করে একটি ফাইলে লেখা যেতে পারে।

যদি TypeValue(স্টোরেজ)<>তারপর টাইপ করুন("BinaryData")

BinaryData = Storage.Get();

BinaryData = Storage;

যদি শেষ; BinaryData.Write(FileName);

যদি এটি ছিল, উদাহরণস্বরূপ, একটি Word নথি (ডক ফাইল, বা অন্যান্য নিবন্ধিত ফাইল প্রকার), তাহলে এটি এভাবে খোলা যেতে পারে:

লঞ্চ অ্যাপ্লিকেশন (ফাইলের নাম);

মান সঞ্চয়স্থান টাইপ একটি ক্ষেত্র সাফ করতে, আপনাকে এটি অনির্ধারিত বরাদ্দ করতে হবে:

প্রপসস্টোরেজ = Undefined;

অন্তর্নির্মিত ভাষা 1C: এন্টারপ্রাইজ 8-এ ফাইল এবং ছবি নিয়ে কাজ করা

উদ্দেশ্য

পরিচালিত অ্যাপ্লিকেশন ফাইলগুলির সাথে কাজ করার জন্য একটি নতুন প্রক্রিয়া প্রয়োগ করে। এটি ইনফোবেস এবং ক্লায়েন্ট অ্যাপ্লিকেশনের মধ্যে ফাইল বিনিময় প্রদান করে। এই প্রক্রিয়াটির বিশেষত্ব হল এটি একটি পাতলা ক্লায়েন্ট এবং একটি ওয়েব ক্লায়েন্ট ব্যবহারের জন্য ডিজাইন করা হয়েছে এবং ওয়েব ব্রাউজার দ্বারা আরোপিত ফাইলগুলির সাথে কাজ করার উপর বিধিনিষেধ বিবেচনা করে ডিজাইন করা হয়েছে।

মেকানিজম হল পদ্ধতির একটি সেট যা ব্যবহারকারীর কম্পিউটারে স্থানীয়ভাবে সংরক্ষিত ডেটা তথ্য বেসের একটি অস্থায়ী সঞ্চয়স্থানে রাখতে, অস্থায়ী সঞ্চয়স্থান থেকে ডেটাবেসে এই তথ্য স্থানান্তর করতে এবং ব্যবহারকারীর কম্পিউটারে ফেরত পেতে ব্যবহার করা যেতে পারে। এই প্রক্রিয়া দ্বারা সমাধান করা সবচেয়ে সাধারণ অ্যাপ্লিকেশন সমস্যাগুলি হল সহগামী তথ্যের সঞ্চয়স্থান, উদাহরণস্বরূপ, পণ্যের ছবি, চুক্তি সম্পর্কিত নথি ইত্যাদি।

পদ্ধতির সুযোগ

অস্থায়ী স্টোরেজ

অস্থায়ী স্টোরেজ তথ্য বেসের একটি বিশেষ এলাকা যেখানে বাইনারি ডেটা স্থাপন করা যেতে পারে। মূল উদ্দেশ্য হল ক্লায়েন্ট-সার্ভার ইন্টারঅ্যাকশনের সময় তথ্যের অস্থায়ী স্টোরেজ ডাটাবেসে স্থানান্তর করার আগে।

অস্থায়ী স্টোরেজের প্রয়োজনীয়তা দেখা দেয় কারণ ওয়েব ব্রাউজার অপারেটিং মডেলের প্রয়োজন হয় যে ব্যবহারকারী-নির্বাচিত ফাইলটি ক্লায়েন্টে সংরক্ষণ করার সম্ভাবনা ছাড়াই সরাসরি সার্ভারে স্থানান্তরিত করা হয়। যখন একটি ফাইল স্থানান্তর করা হয়, তখন এটি অস্থায়ী স্টোরেজে রাখা হয় এবং তারপর ডাটাবেসে একটি বস্তু লেখার সময় ব্যবহার করা যেতে পারে।

অস্থায়ী স্টোরেজ দ্বারা সমাধান করা সবচেয়ে সাধারণ অ্যাপ্লিকেশন টাস্ক হল তথ্য বেসে বস্তুটি রেকর্ড করার আগে ফাইল বা ছবিতে অ্যাক্সেস প্রদান করা, উদাহরণস্বরূপ, একটি উপাদানের আকারে।

স্টোরেজে রাখা একটি ফাইল বা বাইনারি ডেটা একটি অনন্য ঠিকানা দ্বারা চিহ্নিত করা হয়, যা পরে লেখা, পড়া বা মুছে ফেলার কাজে ব্যবহার করা যেতে পারে। এই ঠিকানাটি অস্থায়ী সঞ্চয়স্থানে একটি ফাইল লেখার পদ্ধতি দ্বারা দেওয়া হয়। অন্তর্নির্মিত ভাষায় একটি পৃথক পদ্ধতি আপনাকে পাস করা ঠিকানাটি অস্থায়ী সঞ্চয়স্থানে ডেটা নির্দেশ করে এমন একটি ঠিকানা কিনা তা নির্ধারণ করতে দেয়।

তথ্য ভিত্তি

মেকানিজম আপনাকে ভ্যালু স্টোরেজ টাইপের অ্যাট্রিবিউটে সংরক্ষিত বাইনারি ডেটা অ্যাক্সেস করতে দেয়।

অস্থায়ী সঞ্চয়ের ক্ষেত্রে যেমন, একটি বিশেষ ঠিকানার মাধ্যমে তথ্য অ্যাক্সেস করা সম্ভব। আপনি একটি বস্তুর একটি লিঙ্ক বা একটি তথ্য নিবন্ধন এন্ট্রি কী, এবং বৈশিষ্ট্যের নাম পাস করে একটি বিশেষ পদ্ধতির মাধ্যমে এটি পেতে পারেন। একটি সারণী অংশের ক্ষেত্রে, এটি অতিরিক্তভাবে সারণী অংশের সারি সূচক স্থানান্তর করা প্রয়োজন।

ইনফোবেস বিশদগুলির সাথে কাজ করার সময় ফাইলগুলির সাথে কাজ করার পদ্ধতিগুলির সীমাবদ্ধতা রয়েছে৷ তাদের জন্য, অস্থায়ী স্টোরেজ থেকে ভিন্ন, শুধুমাত্র পড়ার তথ্য পাওয়া যায়, কিন্তু লেখা বা মুছে ফেলা হয় না।

ফাইলের সাথে কাজ করার পদ্ধতির বর্ণনা

অস্থায়ী স্টোরেজে ডেটা সংরক্ষণ করা হচ্ছে

এই প্রক্রিয়াটি ব্যবহার করার জন্য সবচেয়ে সাধারণ দৃশ্যের মধ্যে প্রাথমিকভাবে ব্যবহারকারীর ডেটা অস্থায়ী স্টোরেজে রাখা জড়িত। এর জন্য দুটি পদ্ধতি রয়েছে: PlaceFile() এবং PlaceFileInTemporaryStorage()।

প্রথম পদ্ধতি, PlaceFile(), স্থানীয় ফাইল সিস্টেম থেকে একটি ফাইলকে অস্থায়ী স্টোরেজে রাখে। পদ্ধতিটি স্টোরেজে একটি লক্ষ্য ঠিকানা গ্রহণ করতে পারে। যদি এটি সংজ্ঞায়িত না হয় বা একটি খালি স্ট্রিং হয়, তাহলে একটি নতুন ফাইল তৈরি করা হবে এবং পদ্ধতিটি সংশ্লিষ্ট প্যারামিটারের মাধ্যমে তার ঠিকানা ফেরত দেবে।

যদি অপারেশনের ইন্টারেক্টিভ মোড নির্ধারণ করে এমন প্যারামিটারটি সত্য হয়, তাহলে পদ্ধতিটি একটি স্ট্যান্ডার্ড ফাইল নির্বাচন ডায়ালগ বক্স প্রদর্শন করবে যেখানে আপনি স্টোরেজে রাখার জন্য একটি ফাইল নির্বাচন করতে পারেন। এই ক্ষেত্রে, পদ্ধতিটি নির্বাচিত ফাইলের ঠিকানাও ফেরত দেবে।

ফলস্বরূপ, যদি ব্যবহারকারী ইন্টারেক্টিভভাবে ফাইল নির্বাচন ডায়ালগে একটি অপারেশন সম্পাদন করতে অস্বীকার করে তবে পদ্ধতিটি False প্রদান করে। পদ্ধতি শুধুমাত্র ক্লায়েন্ট উপলব্ধ.

দ্বিতীয় পদ্ধতি, PlaceFileInTemporaryStorage(), পূর্ববর্তী পদ্ধতির মতই, এটি সার্ভারে উপলব্ধ, এবং অস্থায়ী সঞ্চয়স্থানে যে ডেটা লিখতে হবে তা ফাইল সিস্টেমের একটি পাথ হিসাবে নয়, টাইপের একটি পরিবর্তনশীল হিসাবে উপস্থাপন করা হয়। বাইনারি ডেটা। একইভাবে, যদি কোন টার্গেট অ্যাড্রেস নির্দিষ্ট করা না থাকে, স্টোরেজে একটি নতুন ফাইল তৈরি করা হয়। ফাংশনের ফলাফল হিসাবে এর ঠিকানা ফেরত দেওয়া হয়।

অস্থায়ী স্টোরেজ থেকে একটি ফাইল পুনরুদ্ধার করা হচ্ছে

ইনফোবেসে একটি বস্তু লেখার সময়, আপনাকে অস্থায়ী স্টোরেজ থেকে ডেটা বের করতে হবে এবং এটি স্থাপন করতে হবে, উদাহরণস্বরূপ, একটি বৈশিষ্ট্যে। এর জন্য একটি সংশ্লিষ্ট সার্ভার পদ্ধতি রয়েছে - GetFileFromTemporaryStorage()। এই পদ্ধতিটি অস্থায়ী স্টোরেজ থেকে ডেটা পুনরুদ্ধার করে এবং ফলস্বরূপ এটি ফেরত দেয়। এটি করার জন্য, আপনাকে অস্থায়ী সঞ্চয়স্থানে ঠিকানা উল্লেখ করতে হবে। এই ঠিকানাটি উপরে বর্ণিত পদ্ধতিগুলি দ্বারা ফেরত দেওয়া হয় PlaceFile() এবং PlaceFileInTemporaryStorage() যদি সেগুলি সফলভাবে কার্যকর করা হয়।

অস্থায়ী স্টোরেজ থেকে একটি ফাইল মুছে ফেলা হচ্ছে

বিশদে ডেটা সংরক্ষণ করার পরে, অস্থায়ী স্টোরেজে থাকা ফাইলটি মুছে ফেলা যেতে পারে। এই উদ্দেশ্যে, একটি পদ্ধতি আছে DeleteFileFromTemporaryStorage(), যা অস্থায়ী স্টোরেজ থেকে একটি ফাইল মুছে দেয়। পদ্ধতিটি অস্থায়ী সঞ্চয়স্থানে একটি ফাইলের ঠিকানা প্যারামিটার হিসাবে নেয়। সার্ভারে উপলব্ধ।

অস্থায়ী স্টোরেজ জন্য ঠিকানা পরীক্ষা করা হচ্ছে

ফাইলের ঠিকানা ইনফোবেসে অস্থায়ী সঞ্চয়স্থান এবং বিবরণ উভয়ই নির্দেশ করতে পারে। এটির ধরন পরীক্ষা করার জন্য, একটি পদ্ধতি রয়েছে This isTemporaryStorageAddress()।

এটি পরীক্ষা করে যে পাস করা ঠিকানাটি দোকানের দিকে নির্দেশ করে এমন একটি ঠিকানা। ঠিকানাটি অস্থায়ী সঞ্চয়স্থানের দিকে নির্দেশ করলে সত্য ফেরত দেয়। পদ্ধতিটি সার্ভারে উপলব্ধ।

প্রপস ঠিকানা গ্রহণ

তথ্য ইনফোবেসে বিশদ বিবরণে স্থাপন করার পরে, আপনাকে ফাইল পদ্ধতি ব্যবহার করে এটি অ্যাক্সেস করতে হতে পারে।

কিন্তু আপনি ডেটা পাওয়ার আগে, উদাহরণস্বরূপ একটি সম্পত্তি থেকে, আপনাকে এই সম্পত্তির ঠিকানা পেতে হবে। এই উদ্দেশ্যে, একটি পদ্ধতি আছে GetFileAddressInInformationBase()।

এর উদ্দেশ্য হল মূল প্যারামিটার অনুযায়ী ইনফোবেসে ফাইলের ঠিকানা ফেরত দেওয়া। এটি করার জন্য, আপনাকে অবজেক্ট কী পাস করতে হবে (এটি হয় বস্তুর একটি লিঙ্ক বা তথ্য নিবন্ধন এন্ট্রি কী হতে পারে) এবং বৈশিষ্ট্যের নাম। আপনি যদি একটি ট্যাবুলার অংশ অ্যাট্রিবিউটে সংরক্ষিত ফাইলের ঠিকানা পেতে চান, প্যারামিটারে অ্যাট্রিবিউট নামের আগে অ্যাট্রিবিউটের নাম উল্লেখ করে, আপনাকে ট্যাবুলার অংশের নাম এবং একটি বিন্দু যোগ করতে হবে। পদ্ধতিটি ক্লায়েন্ট এবং সার্ভার উভয়েই উপলব্ধ।

ইনফোবেস থেকে একটি ফাইল পুনরুদ্ধার করা হচ্ছে

GetFile() পদ্ধতি ইনফোবেস থেকে একটি ফাইল গ্রহণ করে এবং ব্যবহারকারীর স্থানীয় ফাইল সিস্টেমে সংরক্ষণ করে। প্রথম প্যারামিটারটি প্রপস বা অস্থায়ী ফাইল স্টোরেজে ফাইলের ঠিকানা নির্দিষ্ট করে। দ্বিতীয় পরামিতি ফলাফল ফাইলের গন্তব্য অবস্থান নির্দিষ্ট করে। অ-ইন্টারেক্টিভ মোডে, আপনাকে অবশ্যই পাথ নির্দিষ্ট করতে হবে। ইন্টারেক্টিভ মোডে, প্যারামিটারটি ঐচ্ছিক।

ডিফল্টরূপে, পদ্ধতিটি ইন্টারেক্টিভ মোডে কার্যকর করা হয়, অর্থাৎ, শেষ পরামিতিটি সত্য। এর মানে হল একটি ডায়ালগ বক্স প্রদর্শিত হয় যেখানে আপনি প্রাপ্ত ফাইলের সাথে একটি ক্রিয়া নির্দিষ্ট করতে পারেন: এটি চালান বা ব্যবহারকারী-নির্দিষ্ট অবস্থানে সংরক্ষণ করুন। ইন্টারেক্টিভ মোড সক্রিয় থাকলে এবং টার্গেট ডিস্ক ফাইল পাথ প্যারামিটার নির্দিষ্ট না থাকলে, ফাইল ওপেন অপারেশন উপলব্ধ নয়। একটি বুলিয়ান মান প্রদান করে। False মানে ব্যবহারকারী ইন্টারেক্টিভ সেভ ফাইল ডায়ালগ বক্সে অপারেশন বাতিল করতে বেছে নিয়েছেন।

ফাইল পদ্ধতি ব্যবহার করার উদাহরণ

// ইন্টারেক্টিভ মোডে ডিস্ক থেকে একটি ফাইল গ্রহণ করা // এবং এটিকে অস্থায়ী সঞ্চয়স্থানে স্থাপন করা এবং ক্লায়েন্ট পদ্ধতি সিলেক্টডিস্কফাইলএন্ড রাইট()

পরিবর্তনশীল নির্বাচিত নাম; পরিবর্তনশীল অস্থায়ী স্টোরেজ ঠিকানা; যদি PutFile(TemporaryStorageAddress, SelectedName, True) তাহলে Object.FileName = SelectedName; প্লেসঅবজেক্টফাইল(টেম্পোরারি স্টোরেজ অ্যাড্রেস); যদি শেষ;

প্রক্রিয়া শেষ

// অস্থায়ী সঞ্চয়স্থান থেকে একটি ডিরেক্টরি // বৈশিষ্ট্যে একটি ফাইল অনুলিপি করা, একটি বস্তু রেকর্ড করা, অস্থায়ী // স্টোরেজ থেকে একটি ফাইল মুছে ফেলা এবং সার্ভার পদ্ধতিতে স্থান অবজেক্ট ফাইল (অস্থায়ী স্টোরেজ ঠিকানা)

ডিরেক্টরি উপাদান = ফর্ম অ্যাট্রিবিউটস ভ্যালু("অবজেক্ট"); BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress); ডিরেক্টরি উপাদান.ফাইল ডেটা = NewValueStorage(BinaryData); FilePathOnDisk = নতুন ফাইল(DirectoryItem.FileName); ডিরেক্টরি আইটেম. ফাইলের নাম = FilePathOnDisk.Name; ডিরেক্টরি উপাদান। লিখুন(); পরিবর্তিত = False; DeleteFileFromTemporaryStorage(TemporaryStorageAddress); ValueVFormAttributes(ডিরেক্টরি এলিমেন্ট, "অবজেক্ট");

প্রক্রিয়া শেষ

// প্রপস থেকে একটি ফাইল পড়া এবং এটিকে সংরক্ষণ করা // ইন্টারেক্টিভ মোডে স্থানীয় ডিস্কে এবং ক্লায়েন্ট পদ্ধতি ReadFileAndSaveToDisk()

ঠিকানা = GetFileAddressInInformationBase(Object.Link, "FileData"); GetFile(Address, Object.FileName, True);

প্রক্রিয়া শেষ

ইমেজ ক্ষেত্রে ঠিকানার জন্য সমর্থন

পিকচার ফিল্ড কন্ট্রোল অস্থায়ী স্টোরেজ বা ডাটাবেসে ফাইলের ঠিকানা দ্বারা নির্দিষ্ট করা ছবি প্রদর্শন সমর্থন করে।

এটি করার জন্য, আপনাকে ফর্ম উপাদানের ডেটা বৈশিষ্ট্যে একটি স্ট্রিং টাইপ বৈশিষ্ট্য সেট করতে হবে। এই বৈশিষ্ট্যের মান ছবির ঠিকানা হিসাবে ব্যাখ্যা করা হবে।

উদাহরণ // অস্থায়ী // সঞ্চয়স্থানে ইমেজ ঠিকানায় ইমেজ ফিল্ড বাঁধাই। ঠিকানার ছবি স্ট্রিং টাইপের বিবরণ তৈরি করে

প্লেসফাইল (ছবির ঠিকানা, সত্য)

Picture.Data=AdressPictures

ওয়েব ক্লায়েন্টের সাথে কাজ করার সময় সীমাবদ্ধতা

ওয়েব ক্লায়েন্ট ব্যবহার করার সময় বর্ণিত প্রক্রিয়াটির ক্রিয়াকলাপের কিছু সীমাবদ্ধতা রয়েছে। এই বিধিনিষেধগুলি ব্রাউজারের নিরাপত্তা মডেলের সাথে সম্পর্কিত৷ সুতরাং, উদাহরণস্বরূপ, ক্লায়েন্ট স্বাধীনভাবে স্থানীয় ফাইল সিস্টেমে একটি ফাইল সংরক্ষণ করতে পারে না, অর্থাৎ, শুধুমাত্র ক্লায়েন্ট পদ্ধতিগুলির ইন্টারেক্টিভ সংস্করণ PlaceFile() এবং GetFile() উপলব্ধ। অ-ইন্টারেক্টিভ মোড ব্যবহার করার চেষ্টা করার সময় একটি ব্যতিক্রম নিক্ষেপ করা হয়। ইন্টারেক্টিভভাবে প্রদর্শিত ডায়ালগ বক্সগুলি আপনার ব্রাউজারের প্রকারের জন্য নির্দিষ্ট।

ক্লায়েন্টে ভ্যালু স্টোরেজ নিয়ে কাজ করার সময় বৈশিষ্ট্য

সমস্যা:

যখন একটি নথিতে ট্যাবুলার বিভাগে ভ্যালু স্টোরেজ টাইপের একটি অ্যাট্রিবিউট থাকে, এই অ্যাট্রিবিউটে বড় ডেটা থাকলে এটি ডকুমেন্ট ফর্ম খোলার গতি কমিয়ে দেয়।

অনুমিত কারণ:

সম্ভবত, একটি ফর্ম খোলার সময়, এটি মান স্টোরে অবস্থিত ডেটার লিঙ্ক নয় যা ক্লায়েন্টকে পাঠানো হয়, তবে ডেটা নিজেই।

সমাধান

  • ফর্মের টেবিল অ্যাট্রিবিউটের বৈশিষ্ট্যগুলিতে একটি পতাকা রয়েছে "সর্বদা ব্যবহার করুন"। যদি এটি সেট করা থাকে, ক্ষেত্রের বিষয়বস্তু সর্বদা সার্ভার এবং ক্লায়েন্টের মধ্যে স্থানান্তরিত হয় - উদাহরণস্বরূপ, একটি ফর্ম খোলার সময়। এই পতাকাটি অক্ষম করা আবশ্যক, তবে এটি অবশ্যই কোডে বিবেচনায় নেওয়া উচিত, যেহেতু ডিফল্টরূপে ক্লায়েন্টে এই ক্ষেত্রের জন্য কোনও মান থাকবে না। একটি উদাহরণ 1C:আর্কাইভে পাওয়া যাবে।

এটি ব্যবহার করা আরও ভাল অস্থায়ী স্টোরেজক্লায়েন্ট এবং সার্ভারের মধ্যে ফাইল স্থানান্তর করতে।

দ্রুপাল 8.7.0+ এর সাথে মেলে আপডেট করা হয়েছে

টেম্প স্টোর(অস্থায়ী সঞ্চয়স্থান) - আপনাকে অস্থায়ীভাবে যে কোনও ডেটা সংরক্ষণ করতে দেয়। এটি $_SESSION-এ এক ধরনের ডেটা স্টোরেজ, যেহেতু এই স্টোরেজ সাধারণত একটি নির্দিষ্ট ব্যবহারকারীর সাথে যুক্ত থাকে। কিন্তু এটি $_SESSION ব্যবহার করে না এবং সিস্টেমের ভিতরে সবকিছু সঞ্চয় করে (ডাটাবেসে)।

কোরটিতে অস্থায়ী স্টোরেজের জন্য দুটি পরিষেবা রয়েছে, tempstore.private এবং tempstore.shared। তারা অভিন্নভাবে কাজ করে, কিন্তু ব্যক্তিগত সবসময় একটি নির্দিষ্ট ব্যবহারকারীর জন্য ডেটা সঞ্চয় করে। অর্থাৎ, একটি প্রাইভেট স্টোরেজ থেকে একটি কী কল করলে প্রতিটি ব্যবহারকারীর জন্য আলাদা আলাদা ডেটা ফিরে আসবে। শেয়ার করা প্রতিটি ব্যবহারকারীর কাছ থেকে অ্যাক্সেসযোগ্য।

এই পরিষেবাগুলির প্রয়োগের সুযোগ এবং তাদের স্টোরেজ খুব বিস্তৃত হতে পারে। উদাহরণস্বরূপ, ফর্মগুলির কিছু অস্থায়ী মান সঞ্চয় করুন এবং ব্যবহারকারী যদি সেগুলি সংরক্ষণ না করে থাকেন তবে সেগুলি এই স্টোরেজ থেকে পুনরুদ্ধার করা যেতে পারে, উদাহরণস্বরূপ, কিছু REST ফর্মের জন্য এবং এমনকি নিয়মিতগুলির জন্য উপযুক্ত। সাধারণভাবে, আপনার জন্য যথেষ্ট কল্পনা বা কাজ আছে কি. উদাহরণস্বরূপ, এটি ড্রুপালের বাইরে নিয়ন্ত্রিত কিছু ফর্মের জন্য ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ প্রতিক্রিয়া বা Vue-তে।

এই স্টোরেজের মানগুলি ডিফল্টভাবে 604800 সেকেন্ড (1 সপ্তাহ) জন্য থাকে, তারপরে সেগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।

এই মান পরিবর্তন করতে. আপনাকে সংযোগ করতে হবে, উদাহরণস্বরূপ, sites/default/services.yml এবং এটিকে পুনরায় সংজ্ঞায়িত করতে হবে:

পরামিতি: # 10 সেকেন্ড tempstore.expire: 10

কিন্তু এটি, সঙ্গত কারণে, ঘটতে হবে না।

আসুন প্রতিটি স্টোরেজ ডিভাইসের ক্ষমতা দেখুন; যদিও তারা একই রকম, তারা কিছুটা আলাদা।

tempstore.private - ব্যক্তিগত স্টোরেজ

এই স্টোরেজ প্রতিটি ব্যবহারকারীর জন্য ব্যক্তিগত।

tempstore.shared - শেয়ার্ড স্টোরেজ

এই সঞ্চয়স্থান ভাগ করা হয় এবং সমস্ত ব্যবহারকারীর কাছে সাধারণ ডেটা থাকতে পারে৷

সংগ্রহস্থলের নিম্নলিখিত পদ্ধতি রয়েছে:

  • get($key): স্টোর থেকে এর কী দ্বারা একটি মান পুনরুদ্ধার করে। যদি কোন ডেটা না থাকে তবে এটি NULL প্রদান করবে, যদি থাকে তবে এটি একটি মান প্রদান করবে।
  • getIfOwner($key): স্টোর থেকে এর কী দ্বারা একটি মান পুনরুদ্ধার করে। যদি কোনও ডেটা না থাকে বা বর্তমান ব্যবহারকারীর অধীনে ডেটা লেখা না হয় তবে এটি NULL ফেরত দেবে, যদি বর্তমান ব্যবহারকারীর অধীনে থাকে এবং লেখা থাকে তবে এটি মানটি ফেরত দেবে।
  • setIfNotExists($key, $value): $value কী $key-এর নিচে স্টোরেজের জন্য শুধুমাত্র তখনই লেখা হয় যখন সেই কীটির জন্য বর্তমানে কোনো ডেটা না থাকে। রেকর্ড করা থাকলে TRUE, যদি ডেটা ইতিমধ্যে রেকর্ড করা থাকে তাহলে FALSE প্রদান করে।
  • setIfOwner($key, $value): $value কী $key-এর অধীনে স্টোরেজের জন্য মানটি লেখে শুধুমাত্র যদি বর্তমানে কোনো ডেটা না থাকে বা প্রকৃত ডেটার মালিক বর্তমান ব্যবহারকারী হয়।
  • set($key, $value): স্টোরেজের জন্য $key কী এর নিচে $value মানটি লেখে।
  • getMetadata($key): ডেটা ছাড়াই একটি নির্দিষ্ট $key-এর জন্য মেটাডেটা ফেরত দেয়। এটি এমন একটি বস্তু যার মালিকের সম্পত্তি রয়েছে, যা মান সংরক্ষণ করে, কে মানটির মালিক এবং আপডেট করা সম্পত্তি - এই মানটি লেখার সময়ের ইউনিক্স টাইম স্ট্যাম্প।
  • delete($key): স্টোরেজ থেকে প্রদত্ত $key-এর সাথে যুক্ত ডেটা মুছে দেয়।
  • deleteIfOwner($key): স্টোরেজ থেকে প্রদত্ত $key-এর সাথে যুক্ত ডেটা মুছে দেয়, শুধুমাত্র যদি ডেটা বর্তমান ব্যবহারকারীর হয়।

তারা কিভাবে বলা হয়?

তাদের কল কিভাবে ছোট উদাহরণ.

প্রথম ধাপটি হল প্রয়োজনীয় স্টোরেজের টেম্পস্টোর প্রাপ্ত করা, তারপর স্টোরেজ থেকে একটি "সংগ্রহ" পাওয়া যায়, যেখানে ডেটা ইতিমধ্যে প্রয়োজনীয় কীগুলির অধীনে সংরক্ষণ করা হয়। একটি নিয়ম হিসাবে, "সংগ্রহ" এর নামটি মডিউলের নামের সমান।

Drupal\Core\TempStore\PrivateTempStoreFactory ব্যবহার করুন; Drupal\Core\TempStore\SharedTempStoreFactory ব্যবহার করুন; /** @var PrivateTempStoreFactory $private_tempstore */ $private_tempstore = \Drupal::service("tempstore.private"); $my_private_storage = $private_tempstore->পান("ডামি"); $my_private_storage->সেট("ব্যবহারকারীর নাম", "ড্রুপাল"); /** @var SharedTempStoreFactory $shared_tempstore */ $shared_tempstore = \Drupal::service("tempstore.shared"); $my_shared_storage = $shared_tempstore->পান("ডামি"); $my_shared_storage->সেট("ব্যবহারকারীর নাম", "ড্রুপাল");

উদাহরণ

উদাহরণে, আমরা /temp-store-form পৃষ্ঠায় দুটি ক্ষেত্র সহ একটি ফর্ম তৈরি করব, যার একটি ব্যক্তিগত স্টোরেজে বার্তা সংরক্ষণ করবে এবং অন্যটি সর্বজনীনভাবে।

একটি ফর্ম তৈরি করুন:

Src/FormWithTempStore.php

privateTempStore = $private_temp_store->গেট("ডামি"); $this->sharedTempStore = $shared_temp_store->গেট("ডামি"); ) /** * (@inheritdoc) */ পাবলিক স্ট্যাটিক ফাংশন তৈরি করুন(ContainerInterface $container) ( নতুন স্ট্যাটিক ফেরত দিন($container->get("tempstore.private"), $container->get("tempstore.shared") ); ["private_message"] = [ "#type" => "textarea", "#title" => $this->t("ব্যক্তিগত বার্তা"), "#required" => TRUE, "#description" => $ this->t("এই মান প্রতিটি ব্যবহারকারীর জন্য ব্যক্তিগত হবে।"), "#default_value" => $this->privateTempStore->get("message"), ]; $form["shared_message"] = [ " #type" => "textarea", "#title" => $this->t("ভাগ করা বার্তা"), "#required" => TRUE, "#description" => $this->t("এই মান) সকল ব্যবহারকারীর জন্য শেয়ার করা হবে।"), "#default_value" => $this->sharedTempStore->get("message"), ]; $form["actions"] = ["#type" => "ক্রিয়া" ]; $form["ক্রিয়া"]["submit"] = [ "#type" => "জমা দিন", "#value" => $this->t("Save"), ]; ফেরত $ফর্ম; ) /** * (@inheritdoc) */ পাবলিক ফাংশন সাবমিটফর্ম(অ্যারে &$ফর্ম, FormStateInterface $form_state) ( $this->privateTempStore->set("message", $form_state->getValue("private_message")); $this->sharedTempStore->সেট("বার্তা", $form_state->getValue("shared_message")); ))

প্রিন্ট (Ctrl+P)

1C: এন্টারপ্রাইজের অস্থায়ী স্টোরেজের সাথে কাজ করার একটি পদ্ধতি রয়েছে যা কিছু সেশন-সম্পর্কিত ডেটা সঞ্চয়স্থান সরবরাহ করে।
উপরন্তু, ফাইলগুলির সাথে কাজ করার জন্য একটি পদ্ধতি প্রয়োগ করা হয়েছে, যা ইনফোবেস এবং ক্লায়েন্ট অ্যাপ্লিকেশনের মধ্যে ফাইলের বিনিময় নিশ্চিত করে। এই প্রক্রিয়াটির বিশেষত্ব হল এটি একটি পাতলা ক্লায়েন্ট এবং একটি ওয়েব ক্লায়েন্ট ব্যবহারের জন্য ডিজাইন করা হয়েছে এবং ওয়েব ব্রাউজার দ্বারা আরোপিত ফাইলগুলির সাথে কাজ করার উপর বিধিনিষেধ বিবেচনা করে ডিজাইন করা হয়েছে।

অস্থায়ী স্টোরেজ

এটি তথ্যের একটি বিশেষ ভাণ্ডার যেখানে একটি মান স্থাপন করা যেতে পারে। মূল উদ্দেশ্য হল ক্লায়েন্ট-সার্ভার ইন্টারঅ্যাকশনের সময় তথ্যের অস্থায়ী স্টোরেজ ডাটাবেসে স্থানান্তর করার আগে। অস্থায়ী স্টোরেজ মেকানিজম, ফাইল হ্যান্ডলিং মেকানিজমের সাথে, একটি সেট সরবরাহ করে যা ব্যবহারকারীর কম্পিউটারে স্থানীয়ভাবে সংরক্ষিত ডেটা তথ্য বেসের অস্থায়ী স্টোরেজে রাখতে ব্যবহার করা যেতে পারে, এই তথ্যটি অস্থায়ী স্টোরেজ থেকে ডাটাবেসে স্থানান্তর করতে পারে এবং এটি ব্যবহারকারীর কম্পিউটারে ফিরে আসে। এই প্রক্রিয়াগুলির দ্বারা সমাধান করা সবচেয়ে সাধারণ অ্যাপ্লিকেশন সমস্যাগুলি হল সহগামী তথ্যের সঞ্চয়স্থান, উদাহরণস্বরূপ, পণ্যের ছবি, চুক্তি সম্পর্কিত নথি ইত্যাদি। অস্থায়ী স্টোরেজ এবং ফাইলগুলির সাথে কাজ করার প্রক্রিয়াগুলি প্রায়শই একসাথে ব্যবহার করা হয়, তবে আলাদাভাবেও ব্যবহার করা যেতে পারে।
অস্থায়ী সঞ্চয়স্থানের প্রয়োজন দেখা দেয়, উদাহরণস্বরূপ, কারণ ওয়েব ব্রাউজার মডেলের প্রয়োজন হয় যে একটি ব্যবহারকারী-নির্বাচিত ফাইল ক্লায়েন্টে সংরক্ষণ করার ক্ষমতা ছাড়াই সরাসরি সার্ভারে স্থানান্তর করা হয়। যখন একটি ফাইল স্থানান্তর করা হয়, তখন এটি অস্থায়ী স্টোরেজে রাখা হয় এবং তারপর ডাটাবেসে একটি বস্তু লেখার সময় ব্যবহার করা যেতে পারে।
আপনি নিয়ন্ত্রিত ডেটা জীবনকাল সহ সর্বজনীন স্টোরেজ হিসাবে অস্থায়ী সঞ্চয়স্থান ব্যবহার করতে পারেন:

1. যদি, অস্থায়ী সঞ্চয়স্থানে ডেটা রাখার সময়, ডেটা একটি নির্দিষ্ট ফর্মের সাথে আবদ্ধ হয়, তাহলে সংরক্ষিত ডেটার জীবনকাল নির্ভর করে যে ফর্মের সাথে ডেটা আবদ্ধ হয় তার আয়ুষ্কালের উপর। আপনি একটি ফর্ম অবজেক্ট মুছে ফেললে, অস্থায়ী সঞ্চয়স্থানটি এর সাথে সম্পর্কিত সমস্ত তথ্য সাফ হয়ে যাবে।

2. যদি, অস্থায়ী সঞ্চয়স্থানে ডেটা রাখার সময়, ফর্মের সাথে বাঁধাই সম্পূর্ণ না হয়, তাহলে নিম্নলিখিত ক্ষেত্রে অস্থায়ী সঞ্চয়স্থান সাফ করা হবে:

  • পরের বার আপনি ফর্মের জন্য অনুরোধ করবেন।
  • ক্লায়েন্ট সাধারণ মডিউল থেকে পরবর্তী সার্ভার কল.
  • ফর্ম থেকে প্রাসঙ্গিক এবং অ-প্রসঙ্গিক ক্লায়েন্ট কলের জন্য।
  • যখন একটি কমান্ড মডিউল থেকে সার্ভার-সাইড বলা হয়। যদি একটি সার্ভার কল অস্থায়ী সঞ্চয়স্থানে একটি মান স্থাপন করার জন্য করা হয়, কোন পরিষ্কার করা হয় না। কলটি তার কাজ শেষ করার পরে পরিচ্ছন্নতা ঘটে।

অর্থাৎ, আপনি অস্থায়ী স্টোরেজে এক বা একাধিক মান রাখতে পারেন এবং পরবর্তী কলে এই মানটি ব্যবহার করতে পারেন। যাইহোক, ব্যবহারের পরে এবং সার্ভার কল সম্পূর্ণ হওয়ার আগে, স্থাপন করা মান স্বয়ংক্রিয়ভাবে সরানো হবে।

অস্থায়ী সঞ্চয়স্থান দ্বারা সমাধান করা সবচেয়ে সাধারণ অ্যাপ্লিকেশন সমস্যাটি তথ্য বেসে বস্তুটি রেকর্ড করার আগে ফাইল বা ছবিতে অ্যাক্সেস প্রদান করে, উদাহরণস্বরূপ, একটি উপাদান আকারে। এই ধরনের অ্যাক্সেস সংগঠিত করার সময়, ক্লায়েন্ট কম্পিউটার থেকে সার্ভারে ফাইলের মতো ডেটা স্থানান্তর করার পরামর্শ দেওয়া হয়, পূর্বে "রূপান্তর" ছাড়াই একটি পাঠ্য নথি, স্প্রেডশীট নথি এবং 1C: এন্টারপ্রাইজ সিস্টেমের অনুরূপ বিন্যাসে। ফাইলটিকে সার্ভারের পাশে স্থানান্তর করার পরামর্শ দেওয়া হয় এবং সার্ভারের পাশে, ফাইলের ডেটা পছন্দসই লোড করুন
1C এর বিন্যাস: এন্টারপ্রাইজ সিস্টেম।
স্টোরেজে রাখা ডেটা একটি অনন্য ঠিকানা দ্বারা চিহ্নিত করা হয়, যা পরে লেখা, পড়া বা মুছে ফেলার কাজে ব্যবহার করা যেতে পারে। এই ঠিকানাটি অস্থায়ী সঞ্চয়স্থানে একটি মান লেখার পদ্ধতি দ্বারা দেওয়া হয়। অন্তর্নির্মিত ভাষায় একটি পৃথক পদ্ধতি আপনাকে নির্ধারণ করতে দেয় যে পাস করা ঠিকানাটি অস্থায়ী সঞ্চয়স্থানে ডেটা নির্দেশ করে এমন একটি ঠিকানা কিনা।
একটি সেশনে তৈরি অস্থায়ী স্টোরেজ অন্য সেশন থেকে অ্যাক্সেসযোগ্য নয়। একটি ব্যতিক্রম হল ব্যাকগ্রাউন্ড জব থেকে সেশনে ডেটা স্থানান্তর করার ক্ষমতা যা অস্থায়ী সঞ্চয়স্থান ব্যবহার করে ব্যাকগ্রাউন্ড কাজ শুরু করেছে।

বার্টি . আলু, মূল শাকসবজি এবং সাদা বাঁধাকপি সংরক্ষণের সবচেয়ে গ্রহণযোগ্য উপায় হল বোতলজাত করা। একটি স্তূপ হল একটি আয়তাকার বাঁধ, যা উভয় দিকে ঝুঁকে থাকে এবং উপরে অন্তরক উপাদান দিয়ে আবৃত থাকে। এটি এক মৌসুমের জন্য ফসল সংরক্ষণ করার জন্য তৈরি করা হয়। বার্ট মাটি হতে পারে, যখন আলু সমতল পৃষ্ঠে ঢেলে দেওয়া হয়, এবং অগভীর গর্ত খনন করা হয় তখন আধা-মাটিতে। Popunautny (কবর দেওয়া) pile. এই জাতীয় স্তূপের জন্য, উত্তর থেকে দক্ষিণ দিকে 25 সেন্টিমিটার গভীরতার একটি গর্ত খনন করা হয়। বীজ আলুর জন্য গর্তের সর্বোত্তম প্রস্থ 170-200 সেমি। স্বল্পমেয়াদী স্বাস্থ্যকর আলু সংরক্ষণের জন্য, আপনি তৈরি করতে পারেন। একটি বিস্তৃত বাঁধ (4 মিটার পর্যন্ত)। গর্তের দৈর্ঘ্য নির্বিচারে হতে পারে, তবে, তা সত্ত্বেও, এটি 20-25 মিটারের বেশি না হলে এটি ভাল। স্তূপের বাঁধের উচ্চতা, 2 মিটারের গোড়ায় এর প্রস্থ সহ, 90- হতে পারে। 100 সেমি। সাধারণত, আলু একটি সাইটে বেশ কয়েকটি স্তূপে সংরক্ষণ করা হয়। ড্রিলিং সাইটটি আলু চাষের এলাকার কাছাকাছি এমন জায়গায় স্থাপন করা হয়েছে যেটি বৃষ্টি এবং গলে যাওয়া জলে প্লাবিত হয় না, রাস্তা থেকে খুব দূরে নয়। একটি বায়ুচলাচল নালী 20-25 সেন্টিমিটার চওড়া এবং গভীর গর্তের কেন্দ্রীয় অক্ষ বরাবর খনন করা হয়। এটি গর্তের বাইরে প্রসারিত এবং কলারের শেষে আচ্ছাদনের চেয়ে 25 সেমি লম্বা। গর্তের সীমানা ছাড়িয়ে প্রসারিত চ্যানেলের অংশটি উপরে বোর্ড দিয়ে শক্তভাবে আচ্ছাদিত করা হয়েছে যাতে কোনও পৃথিবী গর্ত এবং চ্যানেলে না যায়। গ্রাউন্ড কলারগুলিতে, বায়ুচলাচল নালীটি সরাসরি মাটির পৃষ্ঠে স্থাপন করা হয় এবং দেড় মিটার পৃথক অংশ দিয়ে তৈরি একটি জালি তাঁবুর আকারে তৈরি করা হয়। খড় এবং মাটিকে বায়ুচলাচল নালীতে প্রবেশ করতে বাধা দেওয়ার জন্য, এর প্রান্তগুলি ফাঁক ছাড়াই তৈরি করা হয়। বায়ুচলাচল নালীগুলিকে আবৃত করার জন্য, 1.5 মিটার লম্বা এবং 0.5 মিটার চওড়া জালির অংশগুলি আগে থেকেই প্রস্তুত করা হয়৷ বিভাগে 2-3 সেমি চওড়া এবং তাদের মধ্যে 2-2.5 সেন্টিমিটার ফাঁক থাকে৷ বিভাগগুলি বায়ুচলাচল নালীতে স্থাপন করা হয় এবং বেঁধে দেওয়া হয়৷ একে অপরকে. ফলস্বরূপ ক্রমাগত বায়ুচলাচল গ্রিল পণ্যের নীচে অবস্থিত চ্যানেলের অংশকে জুড়ে দেয়। আলু বা অন্যান্য পণ্যের ঢিবি গঠনের সময়, একটি কলার থার্মোমিটার বা বিশেষভাবে তৈরি টেট্রাহেড্রাল টিউব-কেসগুলি 3x3 সেন্টিমিটারের অভ্যন্তরীণ ক্রস-সেকশনের সাথে স্থাপন করা হয়, যার মধ্যে রডের শেষে থার্মোমিটার ঢোকানো হয়। কলারগুলি একটি রিজ এবং একটি বায়ুচলাচল নালীর মাধ্যমে বায়ুচলাচল করা হয়। গাদা খড় এবং মাটি দিয়ে আচ্ছাদিত করা হয়. পূর্ণ-বেধের খড় নীচে থেকে উপরে একটি ঘন স্তরে বিছিয়ে দেওয়া হয় যাতে গাদাটির ক্রেস্ট ওভারল্যাপ হয়। এর পরে, গাদাটি পাশের মাটির পাতলা স্তর দিয়ে ছিটিয়ে দেওয়া হয়। প্রথম তুষারপাত না হওয়া পর্যন্ত স্তূপের রিজ খড়ের আস্তরণে থাকে। বৃষ্টির আবহাওয়ায়, এটি অস্থায়ীভাবে ছাদ অনুভূত বা প্লাস্টিকের ফিল্ম দিয়ে আচ্ছাদিত হয়। স্থিতিশীল তুষারপাত শুরু হওয়ার আগে আলুগুলিকে +4 ডিগ্রি সেলসিয়াসে ঠাণ্ডা করার সময়, বায়ুচলাচল নালীগুলি শক্তভাবে খড় দিয়ে ঢেকে দেওয়া হয় এবং গাদাটি সম্পূর্ণরূপে মাটি দিয়ে ঢেকে দেওয়া হয়। যদি পাইলসের তাপমাত্রা +1 ডিগ্রি সেলসিয়াসের নীচে নেমে যায়, তবে গাদাগুলি অতিরিক্ত তাপ-অন্তরক উপকরণ - পিট, খড়, খড়ের সার বা তুষার দ্বারা আবৃত থাকে। ভারী তুষারপাতের ক্ষেত্রে, যা গাদাগুলির অত্যধিক আবরণের দিকে পরিচালিত করে, সেগুলি পর্যায়ক্রমে তুষার থেকে পরিষ্কার করা হয়।

ট্রেঞ্চ স্টোরেজ . এই স্টোরেজ পদ্ধতিতে স্তূপে সংরক্ষণ করার সময় 2 গুণ কম খড় বা অন্যান্য তাপ-অন্তরক উপকরণ প্রয়োজন। ভূগর্ভস্থ জল গভীর হলে পরিখা ব্যবহার করা হয়। পরিখার গভীরতা এবং প্রস্থ 60-80 সেমি (দক্ষিণ অঞ্চলে) থেকে 1.5-2 মিটার (সাইবেরিয়ায়)। পরিখাগুলি উপরে খড়ের একটি স্তর দিয়ে আচ্ছাদিত: কেন্দ্রীয় অঞ্চলে এটি 30-40 সেমি, সাইবেরিয়ায় - 70 সেমি পর্যন্ত। তারপরে পৃথিবীর একটি স্তর ঢেলে দেওয়া হয় (জোনের উপর নির্ভর করে 40 থেকে 70 সেমি পর্যন্ত)। সাধারণত, বিভিন্ন ধরণের পরিখা ব্যবহার করা হয়: অগভীর, বায়ুচলাচল নালী সহ গভীর, মাটির স্তর সহ এবং একটি স্তর ছাড়াই এবং সাধারণ। পরিখা এবং পাইলস (প্রাকৃতিক) সহজ বায়ুচলাচল দিয়ে সজ্জিত। এর প্রধান উদ্দেশ্য শরৎকালে আলু এবং সবজি ঠান্ডা করা। সরবরাহ এবং নিষ্কাশন বায়ুচলাচল পরিচালনার নীতি বায়ু চাপের পার্থক্যের উপর ভিত্তি করে, যেমন পণ্যের স্তুপে এবং বাইরের তাপমাত্রার পার্থক্যের কারণে ঊর্ধ্বমুখী বায়ু চলাচলের খসড়ায়। উষ্ণ বাতাস, হালকা হওয়ায়, নিষ্কাশন পাইপের মধ্য দিয়ে চলে যায় এবং ঠান্ডা বাতাস সরবরাহ নালী দিয়ে প্রবেশ করে। বায়ুচলাচল ব্যবস্থা সরবরাহ এবং নিষ্কাশন নালী নিয়ে গঠিত। ইনলেট চ্যানেলটি কলারের গোড়ার মাঝখানে চলে; শেষ প্রান্তে বাইরের দিকে প্রস্থান রয়েছে। আলু এবং মূল শাকসবজির গাদাগুলিতে, তারা 20x20 সেমি বা 30x30 সেন্টিমিটারের ক্রস-সেকশন দিয়ে একটি খাঁজ তৈরি করে, যা জালি বোর্ড, ট্রান্সভার্স স্ল্যাট বা ব্রাশউড দিয়ে আবৃত করে, যাতে পণ্যের পৃথক কপিগুলি পড়ে না যায়। এই চ্যানেলের মাধ্যমে, বাইরের ঠান্ডা বাতাস মাধ্যাকর্ষণ দ্বারা স্ট্যাকের মধ্যে প্রবাহিত হয়। স্ট্যাক থেকে উত্তপ্ত বায়ু নিষ্কাশন নালী (পাইপ) মাধ্যমে সরানো হয়। এগুলি 20x20 সেমি বা 15x15 সেমি ক্রস-সেকশন সহ বোর্ড দিয়ে তৈরি টেট্রাহেড্রাল বাক্স। নীচের অংশে, শাকসবজির স্তরের মধ্য দিয়ে যাওয়া, এগুলি জালি তৈরি করা হয়, এবং উপরের অংশে, আশ্রয়ের মধ্য দিয়ে যাওয়ার সময়, তারা শক্ত হয়। যাতে মাটি তাদের মধ্যে না পড়ে। বৃষ্টির পানি থেকে পণ্য রক্ষা করার জন্য তাদের উপরে একটি ছাউনি স্থাপন করা হয়। নিষ্কাশন পাইপগুলি, স্টোরেজের জন্য সঞ্চিত শাকসবজির বৈশিষ্ট্য এবং মানের উপর নির্ভর করে, প্রতি 2-4 মিটার স্তূপের দৈর্ঘ্য বরাবর ইনস্টল করা হয়। উল্লম্ব নিষ্কাশন পাইপগুলির একটি অসুবিধা হল যে উষ্ণ এবং আর্দ্র বায়ু শুধুমাত্র স্ট্যাকের সংলগ্ন অঞ্চলগুলি থেকে সরানো হয় এবং দূরবর্তী অঞ্চলগুলি খুব কমই ঠান্ডা হয়। নিষ্কাশন পাইপের কাছাকাছি জল প্রবাহিত হয়, পণ্যগুলি ঘাম এবং জমাট বাঁধে, যেহেতু এখানে আশ্রয়টি কম ঘন এবং নির্ভরযোগ্য। অতএব, রিজ নিষ্কাশন বায়ুচলাচল ব্যবহার করা হয়। শুষ্ক, শীতল আবহাওয়ায় শাকসবজি সংরক্ষণ করার সময়, পরিখার ক্রেস্টটি কেবল খড় দিয়ে আবৃত থাকে, যার মাধ্যমে উষ্ণ বাতাস সরানো হয়। যাইহোক, এই ধরনের অবস্থা বিরল; আবহাওয়া প্রায়ই শরত্কালে বৃষ্টি হয়। এই ধরনের ক্ষেত্রে, একটি অনুভূমিক নিষ্কাশন নালী ইনস্টল করা হয় - বোর্ডগুলি 90° কোণে একত্রিত হয়, যা বাইরের প্রান্তে প্রস্থান সহ সবজির স্তুপে রাখা হয়। এই ক্ষেত্রে, রিজ বরাবর পরিখা অবিলম্বে খড় এবং মাটি দিয়ে আচ্ছাদিত করা যেতে পারে, খড় ভিজে যাওয়া এবং পণ্য জমে যাওয়ার ভয় ছাড়াই। আপনি শুধু সময় শেষ গর্ত বন্ধ করতে হবে. উল্লম্ব নিষ্কাশন বায়ুচলাচল পাইপের উপর একটি অনুভূমিক রিজ নিষ্কাশন নালীর সুবিধা হল যে এই ক্ষেত্রে উষ্ণ এবং আর্দ্র বায়ু পণ্যগুলির সম্পূর্ণ স্ট্যাক থেকে সমানভাবে সরানো হয়।

পিট. সবচেয়ে সহজ স্টোরেজ হল একটি মাটির গর্ত - সঞ্চয় করার উদ্দেশ্যে, প্রায়শই, একটি ছোট ব্যাচ আলু এবং মাঝে মাঝে মূল ফসল। এটি নিম্ন ভূগর্ভস্থ জলের স্তর সহ একটি উঁচু জায়গায় খনন করা হয়। মাটির ঘনত্বের উপর নির্ভর করে, এটি সোজা বা বাঁকানো দেয়াল দিয়ে খনন করা হয়। সবচেয়ে গ্রহণযোগ্য পিট আকৃতি বৃত্তাকার, যাইহোক, কখনও কখনও তারা আয়তক্ষেত্রাকার করা হয়। ঘন কাদামাটি মাটিতে একটি গর্ত খনন করা হয়, একটি জগ আকারে। এটি বালুকাময় মাটিতে এটি করার পরামর্শ দেওয়া হয় না, কারণ এটি ধসে পড়বে। তারা নিম্নরূপ একটি গর্ত খনন করে: 1 মিটার ব্যাসের একটি বৃত্ত আঁকুন এবং জগের ঘাড়টি খনন করুন, তারপরে, গভীর খনন করে, ধীরে ধীরে গর্তটিকে 2-2.5 মিটার ব্যাসের প্রস্থে প্রসারিত করুন। পিট-জগের গভীরতা 1.5-2 মিটার হওয়া উচিত। গলে জল যাতে গর্তে না যায় সে জন্য, ঘাড়ের খোলার চারপাশে সরানো কাদামাটির একটি রোলার রাখা হয়। এই ধরনের স্টোরেজ সুবিধা ঢালে রাখা ঢাকনা দিয়ে আবৃত থাকে যাতে বৃষ্টির পানি গড়িয়ে যেতে পারে। একটি ভালভাবে তৈরি পিট জগ মেরামত ছাড়াই 30-40 বছর স্থায়ী হয়। শীতকালে, এটি একটি নিয়মিত বেসমেন্টের তুলনায় আরও ধ্রুবক তাপমাত্রা এবং আর্দ্রতা বজায় রাখবে। এই ধরনের গর্তে আলু ঘামে না এবং দীর্ঘ সময়ের জন্য অঙ্কুরিত হয় না। বায়ুচলাচল ছাড়াই ছোট ছোট গর্তে আলু সংরক্ষণ করা হয়। বড়গুলিতে, একটি বায়ুচলাচল পাইপ বোর্ড বা চারটি স্টেক থেকে গর্তের নীচে চালিত করা হয় এবং একটি খড়ের কর্ড দিয়ে মোড়ানো হয়। আলু একটি বালতি ব্যবহার করে গর্তে নামানো হয়। দুটি দড়ি বালতিতে বাঁধা: একটি হ্যান্ডেলের সাথে এবং অন্যটি নীচে। বালতি মেঝেতে পৌঁছানোর পরে, নীচের সাথে সংযুক্ত দড়িটি টানুন। একই সময়ে, বালতি টিপস উপরে এবং আলু ছড়িয়ে. ব্যাকফিলিং এই পদ্ধতিতে কন্দ আহত হয় না। আলু দিয়ে পিট-জগ ভর্তি করার পরে, খড় এবং একটি ঢাকনা দিয়ে ঘাড় বন্ধ করা হয়। প্রথম দুই সপ্তাহে, আলু শ্বাস নেওয়ার সময় প্রচুর আর্দ্রতা ছেড়ে দেয়, তাই খড়ের স্তরটি পুরু হওয়া উচিত নয়। পরে, স্থানীয় শীতকালীন অবস্থার উপর নির্ভর করে স্তরটি 50-70 সেন্টিমিটারে সামঞ্জস্য করা হয়।

প্রিন্ট (Ctrl+P)

এই বিভাগটি অস্থায়ী স্টোরেজ এবং ফাইলগুলির সাথে কাজ করার জন্য পদ্ধতির সবচেয়ে সাধারণ ব্যবহারগুলি বর্ণনা করে।

একটি ফাইল থেকে অস্থায়ী স্টোরেজে ডেটা সংরক্ষণ করা হচ্ছে

একটি ফাইল বসানো

PlaceFile() পদ্ধতি স্থানীয় ফাইল সিস্টেম থেকে একটি ফাইলকে অস্থায়ী স্টোরেজে রাখে। পদ্ধতিটি অস্থায়ী স্টোরেজে একটি ঠিকানা গ্রহণ করতে পারে যেখানে ফাইলটি সংরক্ষণ করা উচিত। যদি ঠিকানাটি সংজ্ঞায়িত না হয় বা একটি খালি স্ট্রিং হয়, তাহলে একটি নতুন ঠিকানা তৈরি করা হবে এবং পদ্ধতিটি একটি বিশেষ প্যারামিটারের মাধ্যমে এটি ফিরিয়ে দেবে।
বিঃদ্রঃ. PutFile() পদ্ধতিতে এক কলে ক্লায়েন্ট এবং সার্ভারের মধ্যে সরানো ডেটার পরিমাণ
যদি অপারেশনের ইন্টারেক্টিভ মোড নির্ধারণ করে এমন প্যারামিটারটি সত্য হয়, তাহলে পদ্ধতিটি একটি স্ট্যান্ডার্ড ফাইল নির্বাচন ডায়ালগ বক্স প্রদর্শন করবে যেখানে আপনি স্টোরেজে রাখার জন্য একটি ফাইল নির্বাচন করতে পারেন। এই ক্ষেত্রে, পদ্ধতিটি নির্বাচিত ফাইলের ঠিকানাও ফেরত দেবে।
ফলস্বরূপ, যদি ব্যবহারকারী ইন্টারেক্টিভভাবে ফাইল নির্বাচন ডায়ালগে একটি অপারেশন সম্পাদন করতে অস্বীকার করে তবে পদ্ধতিটি False প্রদান করে।

ফাইল একটি সেট স্থাপন

পদ্ধতি প্লেসফাইলস()একটি কলে অস্থায়ী স্টোরেজে একাধিক ফাইল রাখে। এই পদ্ধতিটি ব্যবহার করার বিভিন্ন উপায় রয়েছে:
● যোগ করার জন্য ফাইলগুলির একটি তালিকা পূর্ব-উত্পন্ন করুন, উদাহরণস্বরূপ, আপনি যখন তথ্য বেসে স্থাপন করা প্রয়োজন এমন ফাইলগুলি আগে নির্বাচন করেছেন;
● পদ্ধতিতে একটি ফাইল অনুসন্ধান মাস্ক পাস করুন, উদাহরণস্বরূপ, যখন আপনি একটি নির্দিষ্ট ধরণের সমস্ত ফাইল, উদাহরণস্বরূপ, সমস্ত ছবি, তথ্য ডাটাবেসে রাখতে চান;
● পদ্ধতিতে একটি পূর্বে প্রস্তুত বস্তু পাস করুন ফাইল নির্বাচন ডায়ালগফাইল খোলার মোডে।
এর কাজ শেষ করার পরে, পদ্ধতিটি আসলে যোগ করা ফাইলগুলির একটি তালিকা ফেরত দিতে পারে।

// ফাইললিস্ট - ভ্যালুলিস্ট টাইপের ফর্মের বৈশিষ্ট্য,
// যোগ করা ফাইলগুলির একটি তালিকা রয়েছে৷
FileArray = নতুন অ্যারে;
ফাইল চক্রের তালিকা থেকে তালিকার প্রতিটি উপাদানের জন্য
FileArray.Add(New Description of TransferFile(ListElement,));
এন্ডসাইকেল;
স্থাপন করা ফাইল= নতুন অ্যারে;
ফলাফল = PlaceFiles(ArrayFiles, PlacedFiles, False, UniqueIdentifier);

দ্রষ্টব্য 1: পদ্ধতিটি ব্যবহার করতে প্লেসফাইলস()ওয়েব ক্লায়েন্টের একটি ফাইল প্রসেসিং এক্সটেনশনের সংযোগ প্রয়োজন।
দ্রষ্টব্য 2: পদ্ধতি কল প্রতি ক্লায়েন্ট এবং সার্ভারের মধ্যে সরানো ডেটার পরিমাণ প্লেসফাইলস(), 4 গিগাবাইট (ক্রমিক আকারে) অতিক্রম করা উচিত নয়।

অস্থায়ী সঞ্চয়স্থানে ডেটা স্থাপন করা

পদ্ধতিটি PlaceFile() পদ্ধতির অনুরূপ, অস্থায়ী সঞ্চয়স্থানে যে ডেটা লিখতে হবে তা ছাড়া
ফাইল সিস্টেমে একটি পাথ হিসাবে উপস্থাপন করা হয় না, কিন্তু একটি মান হিসাবে। একইভাবে, অস্থায়ী সঞ্চয়স্থানে কোনো বিদ্যমান ঠিকানা নির্দিষ্ট না থাকলে, একটি নতুন ঠিকানা তৈরি করা হয়। ফাংশনের ফলাফল হিসাবে ঠিকানাটি ফেরত দেওয়া হয়। ফাইলগুলির মতো, পোস্ট করা ডেটা অবশ্যই কিছু ফর্মের অন্তর্গত এবং এটি মুছে ফেলার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে।
বিঃদ্রঃ.পদ্ধতি কল প্রতি ক্লায়েন্ট এবং সার্ভারের মধ্যে সরানো ডেটার পরিমাণ PlaceIntemporaryStorage(), 4 গিগাবাইট (ক্রমিক আকারে) অতিক্রম করা উচিত নয়।
মনোযোগ!অস্থায়ী সঞ্চয়স্থানে রাখা হলে, মানটি আসলে সিরিয়াল করা হয় না। মানের একটি রেফারেন্স স্থাপন করা হয় এবং 20 মিনিটের জন্য ক্যাশে সংরক্ষণ করা হয়। এই সময়ের পরে, মানটি সিরিয়াল করা হয়, ডিস্কে লেখা হয় (সেশন ডেটা স্টোরেজ), এবং ক্যাশে থেকে সরানো হয়।

অস্থায়ী স্টোরেজ থেকে ডেটা পুনরুদ্ধার করা হচ্ছে

একটি ইনফোবেসে একটি বস্তু লেখার সময়, আপনাকে অস্থায়ী স্টোরেজ থেকে ডেটা বের করতে হবে এবং এটি স্থাপন করতে হবে, উদাহরণস্বরূপ, একটি ইনফোবেস অবজেক্ট অ্যাট্রিবিউটে। এর জন্য একটি বিশেষ পদ্ধতি রয়েছে - GetFromTemporaryStorage()। এই পদ্ধতিটি অস্থায়ী সঞ্চয়স্থান থেকে ডেটা পুনরুদ্ধার করে এবং এটি কার্যকর করার ফলাফল হিসাবে ফেরত দেয়। ডেটা পেতে, আপনাকে অস্থায়ীভাবে ঠিকানাটি নির্দেশ করতে হবে
স্টোরেজ এই ঠিকানাটি সফল হলে অস্থায়ী সঞ্চয়স্থানে ডেটা রাখার পদ্ধতি দ্বারা ফেরত দেওয়া হয় (পূর্ববর্তী বিভাগগুলি দেখুন)।
মনোযোগ!সার্ভারে অস্থায়ী সঞ্চয়স্থান থেকে একটি মান পুনরুদ্ধার করার সময়, আপনার বিবেচনা করা উচিত যে এটি রেফারেন্স দ্বারা প্রাপ্ত হয়েছে। বাস্তবে, এই লিঙ্কটি ক্যাশে সংরক্ষিত একটি মান নির্দেশ করে। 20 মিনিটের মধ্যে, এটি স্টোরেজে রাখার মুহূর্ত থেকে বা এটি শেষবার অ্যাক্সেস করার মুহূর্ত থেকে, মানটি ক্যাশে সংরক্ষণ করা হবে, এবং তারপর ডিস্কে লেখা হবে এবং ক্যাশে থেকে মুছে ফেলা হবে। পরের বার যখন মানটি অ্যাক্সেস করা হয়, তখন এটি ডিস্ক থেকে লোড হয় এবং ক্যাশে আবার স্থাপন করা হয়।
অস্থায়ী সঞ্চয়স্থান থেকে মানগুলি ডিসিরিয়ালাইজেশন এবং পুনরুদ্ধারের পরে, রেফারেন্সগুলি পুনরুদ্ধার করা হয় না। ক্যাশে মান ডিস্ক থেকে পুনরুদ্ধার করা হয়। কিন্তু সিরিয়ালাইজেশন/ডিসারিয়ালাইজেশনের পরে, মানের ভিতরে অন্যান্য বস্তুর রেফারেন্স পুনরুদ্ধার করা অসম্ভব।

অস্থায়ী স্টোরেজ থেকে ডেটা মুছে ফেলা হচ্ছে

ইনফোবেস অবজেক্ট অ্যাট্রিবিউটে ডেটা সংরক্ষণ করার পরে, অস্থায়ী স্টোরেজের ডেটা মুছে ফেলা যেতে পারে। এই জন্য একটি পদ্ধতি আছে
অস্থায়ী স্টোরেজ থেকে সরান(),যা অপসারণের কাজ করে। পদ্ধতিটি একটি প্যারামিটার হিসাবে অস্থায়ী স্টোরেজে একটি ঠিকানা নেয়।

অস্থায়ী স্টোরেজ জন্য ঠিকানা পরীক্ষা করা হচ্ছে

ঠিকানা তথ্য বেসে অস্থায়ী স্টোরেজ এবং বিশদ উভয়ই নির্দেশ করতে পারে। এর ধরন পরীক্ষা করার একটি পদ্ধতি আছে
এটি অস্থায়ী স্টোরেজ ঠিকানা()।এটি পরীক্ষা করে যে পাস করা ঠিকানাটি দোকানের দিকে নির্দেশ করে এমন একটি ঠিকানা। ঠিকানাটি অস্থায়ী সঞ্চয়স্থানের দিকে নির্দেশ করলে সত্য ফেরত দেয়।

প্রপস ঠিকানা গ্রহণ

তথ্যটি ইনফোবেস অবজেক্ট অ্যাট্রিবিউটে স্থাপন করার পরে, আপনাকে ফাইল পদ্ধতি ব্যবহার করে এটি অ্যাক্সেস করতে হতে পারে।
কিন্তু আপনি ডেটা পাওয়ার আগে, উদাহরণস্বরূপ একটি সম্পত্তি থেকে, আপনাকে এই সম্পত্তির ঠিকানা পেতে হবে। এই জন্য একটি পদ্ধতি আছে নেভিগেশন লিঙ্ক () পান.

এটি মূল প্যারামিটারের উপর ভিত্তি করে ইনফোবেসে মানের ঠিকানা ফেরত দিতে পারে। এটি করার জন্য, আপনাকে অবজেক্ট কী পাস করতে হবে (এটি হতে পারে
বস্তুর একটি লিঙ্ক এবং তথ্য রেজিস্টারের এন্ট্রি কী) এবং বৈশিষ্ট্যের নাম উভয়ই। আপনি যদি অ্যাট্রিবিউটে সংরক্ষিত মানের ঠিকানা পেতে চান
ট্যাবুলার অংশ, তারপর বৈশিষ্ট্যের নাম নির্দিষ্ট করে প্যারামিটারের অ্যাট্রিবিউট নামের সাথে, আপনাকে অবশ্যই ট্যাবুলার অংশের নাম এবং একটি বিন্দু যোগ করতে হবে। উদাহরণ স্বরূপ: পণ্য.চিত্র

ইনফোবেস থেকে একটি ফাইল পুনরুদ্ধার করা হচ্ছে

একটি ফাইল গ্রহণ

GetFile() পদ্ধতি ইনফোবেস থেকে একটি ফাইল গ্রহণ করে এবং ব্যবহারকারীর স্থানীয় ফাইল সিস্টেমে সংরক্ষণ করে। প্রথম প্যারামিটারটি ইনফোবেস অবজেক্ট অ্যাট্রিবিউটে বা অস্থায়ী ফাইল স্টোরেজে ফাইলের ঠিকানা নির্দিষ্ট করে। সংরক্ষণ করা হবে না যদি ব্যবহারকারীর পক্ষ থেকে অপারেশন করা হয় তার ইনফোবেস অবজেক্টের বিবরণ দেখার অধিকার না থাকে। দ্বিতীয় প্যারামিটারটি সেই অবস্থান নির্ধারণ করে যেখানে ফলাফল ফাইলটি সংরক্ষিত হয়। অ-ইন্টারেক্টিভ মোডে, আপনাকে অবশ্যই পাথ নির্দিষ্ট করতে হবে। ইন্টারেক্টিভ মোডে পরামিতি হয়
ঐচ্ছিক
ডিফল্টরূপে, পদ্ধতিটি ইন্টারেক্টিভভাবে কার্যকর করা হয়। এর মানে হল একটি ডায়ালগ বক্স তৈরি করা হবে যেখানে আপনি প্রাপ্ত ফাইলের সাথে একটি ক্রিয়া নির্দিষ্ট করতে পারেন: এটি চালান বা ফাইল সিস্টেমে ব্যবহারকারী-নির্দিষ্ট অবস্থানে সংরক্ষণ করুন। যদি ইন্টারেক্টিভ মোড নির্বাচন করা হয় এবং ফাইলের নাম বিকল্পটি নির্দিষ্ট করা না থাকে, তাহলে ফাইল ওপেন অপারেশন উপলব্ধ নয়। পদ্ধতিটি একটি বুলিয়ান মান প্রদান করে। False মানে ব্যবহারকারী ইন্টারেক্টিভ সেভ ফাইল ডায়ালগ বক্সে অপারেশন বাতিল করতে বেছে নিয়েছেন।

ফাইল এক সেট গ্রহণ

GetFiles() পদ্ধতি আপনাকে ব্যবহারকারীর স্থানীয় ফাইল সিস্টেমের ইনফোবেসে সংরক্ষিত বেশ কয়েকটি ফাইল গ্রহণ এবং সংরক্ষণ করতে দেয়। আপলোড করা ফাইলগুলির তালিকা একটি প্যারামিটার হিসাবে পাস করা হয়।

// ফাইললিস্ট - উপাদানগুলির লিঙ্ক ধারণকারী মানগুলির একটি তালিকা
// ডিরেক্টরি যেখানে আপলোড করা ফাইলগুলি অবস্থিত
// মানের প্রতিনিধিত্বের তালিকাটি আপলোড করা ফাইলের নাম
FileArray = নতুন অ্যারে;
ফাইল চক্রের তালিকা থেকে তালিকার প্রতিটি উপাদানের জন্য
ফাইল = নতুন ফাইল(স্ট্রিং(ListElement.Value));
রিসিভফাইল = নতুন প্রেরিত ফাইলের বিবরণ;
ReceiveFile.Name = ListElement.View;
ReceiveFile.Storage= পি getNavigationLink(ListItem.Value, “Data”);
FileArray.Add(RecevingFile);
এন্ডসাইকেল;
প্রাপ্ত ফাইল= নতুন অ্যারে;
ফলাফল = রিসিভফাইলস(ফাইলস অ্যারে, রিসিভডফাইলস, আপলোড করা ফাইলপাথ, ফলস);
যদি রেজাল্ট না হয় তাহলে
বার্তা = নতুন ব্যবহারকারীকে বার্তা;
বার্তা।পাঠ্য = "ফাইল গ্রহণে ত্রুটি!";
Message.Message();
যদি শেষ ;

সমাপ্তির পরে, পদ্ধতিটি প্রকৃতপক্ষে ডাউনলোড করা ফাইলগুলির একটি তালিকা ফেরত দিতে পারে, প্রতিটি সংরক্ষিত ফাইলের সম্পূর্ণ নাম নির্দেশ করে।
বিঃদ্রঃ. ওয়েব ক্লায়েন্টে GetFiles() পদ্ধতি ব্যবহার করতে, আপনাকে ফাইল এক্সটেনশন সংযোগ করতে হবে। যদি প্রপার্টি অবজেক্টের নাম প্রেরিত ফাইলের বিবরণফাইলটির পরম পথ রয়েছে, ফাইলটি এই পাথে সংরক্ষণ করা হবে, প্যারামিটার নির্বিশেষে ফাইলের অবস্থান.
ফাইল অবস্থান প্যারামিটার স্থানীয় ফাইল সিস্টেমের একটি পাথ হতে পারে বা একটি ডিরেক্টরি নির্বাচন বা ফাইল সংরক্ষণের মোডে একটি ফাইল নির্বাচন ডায়ালগ অবজেক্ট হতে পারে। যদি প্যারামিটার মান ফাইলের অবস্থানবস্তু নির্দিষ্ট ফাইল নির্বাচন ডায়ালগমোডে
ফাইল সংরক্ষণ, তারপর:

● প্রতিটি স্থানান্তরিত ফাইলের জন্য ডায়ালগ বলা হবে, সেই ফাইলগুলি ব্যতীত যেগুলির জন্য ট্রান্সমিটেড ফাইল বর্ণনা অবজেক্টের নাম বৈশিষ্ট্যে একটি পরম পথ রয়েছে;
● বস্তুর মান ট্রান্সমিটেড ফাইল প্রপার্টির বর্ণনার নাম ডায়ালগে প্রাথমিক ফাইলের নাম হিসেবে ব্যবহার করা হবে;
● যদি কোনো ফাইলের জন্য সংরক্ষণ করতে অস্বীকৃতি নির্বাচন করা হয়, তাহলে স্থানান্তরিত ফাইলের সম্পত্তির বিবরণে একটি খালি স্ট্রিং থাকবে;
● GetFiles() পদ্ধতিটি সত্য মান প্রদান করবে যদি অন্তত একটি ফাইল সফলভাবে প্রাপ্ত হয়;
● এটি বিবেচনা করা উচিত যে নাম এবং পথ নির্দিষ্ট করার বিষয়ে ব্যবহারকারীর প্রশ্নের উত্তর দেওয়ার পরে ফাইলগুলি আসলে প্রাপ্ত হয়
সমস্ত প্রাপ্ত ফাইল;
● যে ব্যবহারকারীর পক্ষ থেকে GetFile() পদ্ধতিটি কার্যকর করা হয় তার যদি ইনফোবেস অবজেক্ট থেকে ফাইলগুলি পুনরুদ্ধার করা হয় তার অন্তত একটি বৈশিষ্ট্যের ভিউ অধিকার না থাকে তবে পুরো অপারেশনটি ব্যর্থ হবে।
উদাহরণ:

স্থানান্তরকৃত ফাইল = নতুন অ্যারে;
বর্ণনা = নতুন প্রেরিত ফাইলের বিবরণ("বিবরণ", ফাইলের ঠিকানা);
স্থানান্তরিত ফাইল(বর্ণনা);
ফাইল নির্বাচন = নতুন FileSelectionDialog(FileSelectionDialogMode.Save);
ফাইল সিলেক্ট। হেডার= "আর্কাইভ সংরক্ষণ করুন";
ফাইল নির্বাচন। এক্সটেনশন= "জিপ";
FileSelect.Filter= “আর্কাইভ(*.zip)|*.zip|সমস্ত ফাইল|*.*”;
FileSelect.FilterIndex = 0;
রিসিভফাইলস (ট্রান্সফার ফাইল, সিলেক্টফাইল, ফলস);

ফাইল সংরক্ষণের জন্য ডিরেক্টরি নির্বাচন করার জন্য ইন্টারেক্টিভ মোড নির্বাচন করা হলে, ওয়েব ক্লায়েন্ট অতিরিক্ত পাথের সাথে নির্দিষ্ট করা ফাইলগুলি সংরক্ষণ করার অনুমতির অনুরোধ করবে। নন-ইন্টারেক্টিভ সেভিংয়ের ক্ষেত্রে (ডিরেক্টরির পথটি সংশ্লিষ্ট প্যারামিটারে নির্দিষ্ট করা আছে), সংরক্ষিত ফাইলের সম্পূর্ণ তালিকার জন্য অনুরোধটি কার্যকর করা হবে।

ফাইল পদ্ধতি ব্যবহার করার উদাহরণ

// ইন্টারেক্টিভভাবে ডিস্ক থেকে একটি ফাইল পুনরুদ্ধার করা
// এবং অস্থায়ী সঞ্চয়স্থানে স্থাপন করা।
&অনক্লায়েন্ট
পদ্ধতি সিলেক্ট ডিস্কফাইলআইওয়াইট()
পরিবর্তনশীল নির্বাচিত নাম;
পেরেম অস্থায়ী স্টোরেজ ঠিকানা;
NewObject = Object.Link.Empty();
যদি প্লেসফাইল (অস্থায়ী স্টোরেজ ঠিকানা, "", নির্বাচিত নাম, সত্য)তারপর
Object.FileName = SelectedName;
প্লেসঅবজেক্টফাইল(টেম্পোরারি স্টোরেজ অ্যাড্রেস);
যদি শেষ;
প্রক্রিয়া শেষ
// অস্থায়ী স্টোরেজ থেকে প্রপসে একটি ফাইল কপি করা
// ডিরেক্টরি, একটি বস্তু লেখা, অস্থায়ী থেকে একটি ফাইল মুছে ফেলা
// স্টোরেজ।
সার্ভারে
পদ্ধতি PlaceObjectFile(Temporary StorageAddress)
ডিরেক্টরি উপাদান = ফর্ম অ্যাট্রিবিউটস ভ্যালু ("অবজেক্ট");
BinaryData = GetFromTemporaryStorage(TemporaryStorageAddress);
ডিরেক্টরি উপাদান.ফাইল ডেটা= নতুন স্টোরেজ ভ্যালুস(বাইনারী ডেটা, NewDataCompression());
ফাইল = নতুন ফাইল (ডিরেক্টরি আইটেম। ফাইলের নাম);
ডিরেক্টরি Item.FileName = File.Name;
ডিরেক্টরি উপাদান। লিখুন();
পরিবর্তিত = False;
অস্থায়ী স্টোরেজ থেকে মুছুন(অস্থায়ী স্টোরেজ ঠিকানা);
ValueVFormAttributes(ডিরেক্টরি এলিমেন্ট, "অবজেক্ট");
প্রক্রিয়া শেষ
// প্রপস থেকে ফাইলটি পড়ুন এবং এটি সংরক্ষণ করুন
// ইন্টারেক্টিভ মোডে স্থানীয় ডিস্কে।
&অনক্লায়েন্ট
পদ্ধতি ReadFileAndSaveToDisk()
ঠিকানা = GetNavigationLink(Object.Link,"FileData");
GetFile(Address, Object.FileName, True);
প্রক্রিয়া শেষ

ফাইল অপারেশন একটি গ্রুপ সঞ্চালনের অনুমতি

ওয়েব ক্লায়েন্টে কিছু অপারেশন করার সময়, আপনাকে একাধিক ফাইল অপারেশনের জন্য অনুমতি নিতে হতে পারে।
উদাহরণস্বরূপ, আপনাকে একটি ইনফোবেস থেকে একটি নথি পুনরুদ্ধার করতে হবে এবং তারপর সংশ্লিষ্ট অ্যাপ্লিকেশন ব্যবহার করে সংরক্ষিত নথিটি খুলতে হবে।
এই ক্রিয়াকলাপটি সম্পাদন করার জন্য, আপনাকে নথিটি সংরক্ষণ করার বিষয়ে এবং এটি চালানোর প্রয়োজনীয়তার বিষয়ে প্রশ্নের উত্তর দিতে হবে। যদি আরও অপারেশন থাকে, ব্যবহারকারীর আরও প্রশ্ন থাকবে।
প্রশ্নের সংখ্যা কমাতে, আপনি পদ্ধতিটি ব্যবহার করতে পারেন। এই পদ্ধতি ব্যবহার করার সময়
ব্যবহারকারীকে সমস্ত ক্রিয়াকলাপগুলির একটি তালিকা দেখানো হয় যা সঞ্চালনের পরিকল্পনা করা হয়েছে এবং অপারেশনগুলির গ্রুপটিকে সঞ্চালনের অনুমতি দিতে বলা হয়। ব্যবহারকারী যদি কার্যকর করার অনুমতি দেয়, তাহলে অনুরোধকৃত ক্রিয়াকলাপগুলি ব্যবহারকারীর কাছে অতিরিক্ত অনুরোধ ছাড়াই সঞ্চালিত হবে। যদি অনুমতি না দেওয়া হয়, অপারেশন স্বাভাবিক হিসাবে এগিয়ে যাবে: প্রতি অপারেশন একটি অনুরোধ.
বিঃদ্রঃ. পদ্ধতি ব্যবহার করতে ব্যবহারকারীর অনুমতির অনুরোধ ()ওয়েব ক্লায়েন্টে আপনাকে ফাইল ম্যানেজমেন্ট এক্সটেনশন সক্রিয় করতে হবে।
আসুন পদ্ধতিটি ব্যবহার করার একটি উদাহরণ দেখি:

যদি কানেক্ট এক্সটেনশন ফাইলের সাথে কাজ করছে()তারপর
লিঙ্ক = GetNavigationLink(Object.Link, “FileData”);
// স্থানান্তরিত ফাইলগুলির একটি বিবরণ গঠন (এই ক্ষেত্রে শুধুমাত্র একটি ফাইল আছে)
স্থানান্তরিত ফাইল= নতুন অ্যারে;
বর্ণনা = স্থানান্তরিত ফাইলের নতুন বিবরণ (অবজেক্ট। ফাইলের নাম, লিঙ্ক);
স্থানান্তরিত ফাইল। যোগ(বিবরণ);
// প্রাপ্ত ফাইল সম্পর্কে তথ্য পেতে একটি বস্তু প্রস্তুত করুন
স্থানান্তরিত ফাইল= নতুন অ্যারে;

// অন্যান্য পদ্ধতি পরামিতি সংজ্ঞায়িত করুন
ডিরেক্টরি সংরক্ষণ করুন= "c:\temp";
ইন্টারেক্টিভ = মিথ্যা ;
প্রেরিত ফাইলের নাম = ডিরেক্টরি সংরক্ষণ করা হচ্ছে + “\" + Object.FileName;
// অনুমতি পাওয়ার জন্য পদ্ধতির একটি বিবরণ প্রস্তুত করুন
পদ্ধতি = নতুন অ্যারে;

পদ্ধতি যোগ করুন (“GetFiles”);
পদ্ধতি যোগ করুন(ট্রান্সফার ফাইল);
পদ্ধতি যোগ করুন(স্থানান্তরকৃত ফাইল);
পদ্ধতি যোগ করুন (সংরক্ষণ ডিরেক্টরি);
পদ্ধতি যোগ করুন (ইন্টারেক্টিভ);
পদ্ধতি যোগ করুন (নতুন অ্যারে);
পদ্ধতি যোগ করুন("RunApplication");
পদ্ধতি যোগ করুন(স্থানান্তরকৃত ফাইলের নাম);
যদি না ব্যবহারকারীর অনুমতির অনুরোধ (পদ্ধতি)তারপর
সতর্কতা ("ব্যবহারকারী অনুমতি অস্বীকার করেছে।");
প্রত্যাবর্তন;
যদি শেষ;
GetFiles(TransferFiles, Transmitted Files, SavingDirectory, Interactive);
RunApplication(TransferedFileName);
অন্যথায়
সতর্কতা("এক্সিকিউশন সমর্থিত নয়। ফাইল এক্সটেনশন ইনস্টল করা নেই।");
যদি শেষ;

পদ্ধতির বেশ কয়েকটি বৈশিষ্ট্য উল্লেখ করা উচিত RequestUserPermission()।

1. অনুমতি শুধুমাত্র নিম্নলিখিত পদ্ধতির জন্য অনুরোধ করা হয়েছে:

GetFiles()/StartGettingFiles(),
● PlaceFiles()/StartPlaceFiles(),
● FindFiles()/StartSearchFiles(),
● CopyFile()/StartCopyFile(),
● MoveFile()/StartMovingFile(),
●DeleteFiles()/StartDeleteFiles(),
● CreateDirectory()/StartCreatingDirectory(),
● LaunchApplication()/StartRunApplication()।

2. পদ্ধতির পরামিতিগুলির একটি নির্দিষ্ট সেটের জন্য অনুমতি চাওয়া হয়েছে৷ যদি, একটি ফাইল ম্যানিপুলেশন পদ্ধতির প্রকৃত সঞ্চালনের সময়, প্যারামিটারের মানগুলি যার জন্য অনুমতি নেওয়া হয়েছিল তার থেকে আলাদা হয়, এই অনুমতিটি বৈধ হবে না এবং ব্যবহারকারী অপারেশনটি নিশ্চিত করার জন্য একটি পৃথক অনুরোধ পাবেন।

3. যদি আপনাকে ফাইলগুলির সাথে (এমনকি একই প্যারামিটারের সেট সহ) দুটি (বা তার বেশি) অভিন্ন ক্রিয়াকলাপ সম্পাদন করতে হয় তবে আপনাকে মেথড প্যারামিটার অ্যারেতে উপাদানগুলির উপযুক্ত সংখ্যা উল্লেখ করতে হবে ব্যবহারকারীর অনুমতির অনুরোধ (). উদাহরণস্বরূপ, যদি আপনার ইনফোবেস থেকে একই ফাইলটি দুবার পেতে এবং ফাইল সিস্টেমের একটি নির্দিষ্ট স্থানে স্থাপন করতে হয়, তাহলে আপনাকে অনুমতির অনুরোধ করা উচিত।
দুটি অপারেশনের জন্য।

4. যদি একটি অপারেশনের জন্য অনুমতি চাওয়া হয় যা একটি ইন্টারেক্টিভ অপারেশন করে (উদাহরণস্বরূপ, GetFiles() ফাংশন, একটি বস্তুকে একটি প্যারামিটার হিসাবে পাস করা হয় ফাইল নির্বাচন ডায়ালগ), তাহলে এই ধরনের অপারেশন অনুরোধ থেকে বাদ দেওয়া হয়।

অনুমোদিত কলটি কার্যকর না হওয়া পর্যন্ত বা অন্তর্নির্মিত ভাষাটি কার্যকর করা শেষ না হওয়া পর্যন্ত অনুমোদিত অনুমতিগুলি বজায় রাখা হয়।
বিঃদ্রঃ. পুরু এবং পাতলা ক্লায়েন্ট মধ্যে ব্যবহারকারীর অনুমতির অনুরোধ ()পদ্ধতিটি সর্বদা সত্য প্রদান করে, ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই।

একটি ব্যাকগ্রাউন্ড কাজের অস্থায়ী স্টোরেজ নিয়ে কাজ করা

অস্থায়ী সঞ্চয়স্থানের সাথে কাজ করার প্রক্রিয়াটির ব্যাকগ্রাউন্ড জব থেকে সেশনে ডেটা স্থানান্তর করার ক্ষমতা রয়েছে যা ব্যাকগ্রাউন্ড কাজ শুরু করেছে।
এই ধরনের স্থানান্তরের জন্য, আপনাকে প্যারেন্ট সেশনে অস্থায়ী স্টোরেজে একটি খালি মান রাখতে হবে (পদ্ধতিটি ব্যবহার করে PlaceIntemporaryStorage()), তৈরি করা অস্থায়ী সঞ্চয়স্থানের কোনো শনাক্তকারী উল্লেখ করে (ঠিকানা প্যারামিটার)। তারপর ব্যাকগ্রাউন্ড জব প্যারামিটারের মাধ্যমে প্রাপ্ত ঠিকানাটি ব্যাকগ্রাউন্ড জবের কাছে পাস করুন। আরও, যদি একটি ব্যাকগ্রাউন্ড কাজের ক্ষেত্রে এই ঠিকানাটি মেথড অ্যাড্রেস প্যারামিটারের মান হিসাবে ব্যবহার করা হয় PlaceIntemporaryStorage(), তারপর ফলাফলটি সেই অধিবেশনে অনুলিপি করা হবে যেখান থেকে ব্যাকগ্রাউন্ড কাজ চালু করা হয়েছিল।
একটি ব্যাকগ্রাউন্ড কাজের অস্থায়ী স্টোরেজে রাখা ডেটা পটভূমি কাজ সম্পূর্ণ না হওয়া পর্যন্ত প্যারেন্ট সেশন থেকে অ্যাক্সেসযোগ্য হবে না।

ইমেজ ক্ষেত্রে ঠিকানার জন্য সমর্থন

ভিউ ফিল্ড ফর্ম উপাদান ছবি ক্ষেত্র অস্থায়ী সঞ্চয়স্থান বা ডাটাবেসে একটি মান (যেটি একটি ছবি বা বাইনারি ডেটা হতে পারে) ঠিকানা দ্বারা নির্দিষ্ট একটি ছবি প্রদর্শন সমর্থন করে।
এটি করার জন্য, আপনাকে ফর্ম উপাদানের ডেটা বৈশিষ্ট্যে একটি স্ট্রিং টাইপ বৈশিষ্ট্য সেট করতে হবে। এই বৈশিষ্ট্যের মান ছবির ঠিকানা হিসাবে ব্যাখ্যা করা হবে।

// উদাহরণ 1
// অস্থায়ীভাবে ইমেজ অ্যাড্রেসের সাথে ইমেজ ফিল্ড বাঁধাই
// স্টোরেজ। ঠিকানা ছবি - স্ট্রিং টাইপ ফর্ম বিবরণ
প্লেসফাইল(ছবির ঠিকানা, প্রাথমিক নাম, নির্বাচিত নাম, সত্য, অনন্য সনাক্তকারী);
// উদাহরণ 2
// অবজেক্ট অ্যাট্রিবিউট থেকে ছবির ঠিকানা পাওয়া
// তথ্য ভিত্তি
ফাইল ছবি = Object.FilePictures;
PictureFile.Empty() না হলে
ImageAddress = GetNavigationLink(ImageFile, “FileData”);
অন্যথায়
ছবির ঠিকানা = "";
অন্তহীন;

স্ট্যান্ডার্ড ডিরেক্টরিতে অ্যাক্সেস

সিস্টেম ব্যবহার করার সময়, ফাইল সিস্টেমে কিছু স্থান প্রয়োজন যেখানে বিভিন্ন ফাইল ডেটা সংরক্ষণ করা যেতে পারে, যা একদিকে অস্থায়ী, অন্যদিকে, বেশ দীর্ঘ সময়ের জন্য সংরক্ষণ করা আবশ্যক। এই ধরনের ফাইলগুলির মধ্যে ডকুমেন্ট ম্যানেজমেন্ট সিস্টেমের জন্য ড্রাফ্ট, ক্লায়েন্ট কম্পিউটার সাইডে চলমান বাহ্যিক উপাদানগুলি অন্তর্ভুক্ত থাকে।
একটি বিশেষ ডিরেক্টরি এই ধরনের ফাইলগুলি সংরক্ষণ করার উদ্দেশ্যে তৈরি করা হয়, যা একটি নির্দিষ্ট তথ্য বেসের একটি নির্দিষ্ট ব্যবহারকারীর সাথে সংযুক্ত থাকে।
দুটি ইনফোবেসের সাথে কাজ করা একই ব্যবহারকারী ব্যবহারকারীর ডেটা সংরক্ষণের জন্য দুটি ভিন্ন ডিরেক্টরিতে অ্যাক্সেস পাবে। এই ডিরেক্টরির অবস্থান পদ্ধতি ব্যবহার করে নির্ধারিত হয় WorkUserDataDirectory() যদি ডিরেক্টরিটি বিদ্যমান না থাকে, এটি প্রথমবার অ্যাক্সেস করার সময় তৈরি করা হয়। যদি ডিরেক্টরি তৈরি করা না যায়, সিস্টেমটি একটি ব্যতিক্রম নিক্ষেপ করে।
বিঃদ্রঃ. UserDataWorkDirectory() পদ্ধতি সার্ভারের পাশে উপলব্ধ নয়।
অপারেটিং সিস্টেমে ব্যবহারকারীর ডেটা স্থায়ী স্টোরেজের জন্য বরাদ্দ একটি বিশেষ ডিরেক্টরি রয়েছে। এটা কিছু হতে পারে
রিপোর্ট, নথির মুদ্রিত ফর্ম, ইত্যাদি। ডেটা এই ডিরেক্টরিতে স্থাপন করা হয়, যা পরে বহিরাগত পাঠানো যেতে পারে
ভোক্তাদের কাছে। এই ডিরেক্টরিটি অ্যাক্সেস করতে DocumentDirectory() পদ্ধতি ব্যবহার করা হয়। অপারেটিং সিস্টেমের উপর নির্ভর করে ডিরেক্টরির শারীরিক অবস্থান পরিবর্তিত হয়।
সিস্টেম যেখানে অ্যাপ্লিকেশনটি কার্যকর করা হয় এবং সিনট্যাক্স সহকারীতে তালিকাভুক্ত করা হয়।