কীভাবে ড্রুপালে সঞ্চিত প্রক্রিয়া চালানো যায়?


9

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


আপনি ওয়েব অনুসন্ধান করেছেন? গুগল "ড্রুপাল সঞ্চিত পদ্ধতি" এর জন্য কিছু ফলাফল ফিরিয়ে দেয় যা আকর্ষণীয় বলে মনে হয়। আপনি কোড চেষ্টা করে? আপনি কি বলতে পারেন কি কাজ করেছে এবং কী করেনি?
মার্চভেনজেন্ড

1
হ্যাঁ, আমি গুগলে অনুসন্ধান করেছি। প্যারামিটারগুলির সাথে একক সঞ্চিত প্রক্রিয়া সম্পাদন করতে কয়েকটি লাইন কোডের প্রয়োজন বলে মনে হচ্ছে। সঞ্চিত প্রক্রিয়া চালানোর জন্য ড্রুপাল এপিআই-তে কোনও সহায়ক ফাংশন রয়েছে কি?
মহেশ ভাট 31'12

উত্তর:


11

ধরে নিচ্ছেন আপনি ড্রুপাল 7 ব্যবহার করছেন আপনি নীচের মত কোড ব্যবহার করতে পারেন:

// Get the Drupal database connection and change the statement class to PDOStatement.
// Save the current class for cleanup later.
$conn = Database::getConnection();
$saved_class = $conn->getAttribute(PDO::ATTR_STATEMENT_CLASS);
$conn->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('PDOStatement'));

// Prepare the statement and bind params
$statement = $conn->prepare("Call GetNodeList(?,?)");

$op_status = $statement->bindParam(1, $node_type, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 25);
$op_status = $statement->bindParam(2, $publish_state, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT);

// Execute the statement and reset the connection's statement class to the original.
$exec_result = $statement->execute();
$conn->setAttribute(PDO::ATTR_STATEMENT_CLASS, $saved_class);

// Get your data
while ($row = $statement->fetchColumn(0)) {
  // ...
}

এই পদ্ধতিটি এই নিবন্ধটি থেকে সম্পূর্ণরূপে সজ্জিত এবং অতীতে আমার পক্ষে ভালভাবে কাজ করেছে।


এটি culling জন্য ধন্যবাদ! "এই নিবন্ধ" দিয়ে উল্লিখিত পৃষ্ঠাটি সমাধান করে না।
সিডমো

0

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

সাবমিট হ্যান্ডেলারটিতে আমার এই লিগ্যাসি সিস্টেমে ডেটা প্রেরণের দরকার ছিল যা ডেটা পরিচালনা করার জন্য একটি স্টোরেজ পদ্ধতি ছিল (পোস্টগ্রিস তাদের ফাংশন বলে)

// Get legacy database connection set-up in settings.php
Database::getConnection('default', 'legacy')
  ->query('SELECT * FROM stored_procedure(:named_parameter_1, :named_parameter_2, ...);', [
    ':named_parameter_1' => $value_1,
    ':named_parameter_1' => $value_2,
    ...
  ]);

এটি আমার উত্তরাধিকার ব্যবস্থায় সাফল্যের সাথে ডেটা পেয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.