اذهب إلى المحتوى

السؤال

نشر (معدل)

متى يتم استخدام علامة الزائد عند تحويل كود SQL ليتم استخدمه في JavaScript ؟

مرفق كود SQL تم تحويله الى كود في JavaScript ، حيث استخدم المدرب علامة زائد واحده فما هو السبب ؟

3F265F8A-3732-495B-BA9D-FEC3B5584B65_4_5005_c.jpeg

2E141429-F438-44AE-8C8B-B7772DECECD8_4_5005_c.jpeg

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 0
نشر

في جافا سكربت لا يمكن كتابة السلسلة النصية على أكثر من سطر واحد، أي عند استخدام علامة الاقتباس " أو ' لا يمكن أن يتم الفصل لسطر جديد. لذلك في حال أردنا كتابة سلسلة نصية طويلة و لتظهر بشكل كامل في محرر الأكواد يمكن فصل كل سلسلة في سطر و استخدام معامل الجمع لدمج السلاسل النصية

  • يمكن استخدام ` (backticks) حرف (ذ) بعد تغيير اللغة للإنكليزية لكتابة سلسلة نصية على أكثر من سطر

مثال:

var text = "هذا نص مكتوب 
 على أكثر من سطر";

console.log(text)


var text = 'هذا نص مكتوب' + 
'على أكثر من سطر';

console.log(text)



var text = `هذا نص مكتوب
على أكثر من سطر`;

console.log(text)

التنفيذ:

multiline.jpg

  • 0
نشر

الاستعلام SQL عبارة عن نص ليس إلا، عندما نريد بناء نص الاستعلام ضمن لغات البرمجة مثل جافاسكريبت نعامله معاملة النص فيها

هنا تم استخدام علامة الجمع لتركيب النص من فقرتين، يبدو أن المدرب استخدم ذلك فقط لتقليل طول السطر بدلًا من كتابة الاستعلام ضمن نص واحد على سطر طويل

'select * from table'

// يساوي 

'select * ' + 'from table'

يمكنك طرح استفساراتك ضمن التعليقات تحت الدرس في الدورات في حال وجود استفسار وسيقوم المدربون بالرد على استفسارك هناك 

  • 0
نشر (معدل)

علامة الزائد أو + ليس لها علاقة بكود أو استعلام sql الذي تم تحويله إلى js ولكن سبب وجودها هو دمج السطر الأول مع السطر الثاني ,فبرمجيا يمكن جمع السلاسل النصية دون مشكلة كما في المثال التالي:

var text_A = 'one day';
var text_B = 'from any week';
let total = text_A + text_B;

والناتج

one dayfrom any week

Screenshot_387.thumb.png.67430b502e326f84c7eab70fc8f40dcc.png

ولا مشكلة من تكرار ذلك عدة مرات

Screenshot_388.thumb.png.79f4875e077d92bf088b235ed6d36a9c.png

أو حتي عدم استخدام var في الاعلام يمكن جمع السلاسل النصية بالشكل التالي:

Screenshot_390.thumb.png.83d70bb6ee02589d58c8a1442c92f613.png

 

فالسبب وراء كتابته + أنه اراد تقسيم الاستعلام أو كود sql الطويل نسبيا على عدة سطور, وجعله سهل القراءة دون الحاجة إلي التمرير افقيا مع السطور الطويلة,

بإختصار ما تقوم به + هي دمج السلسلتين معاً, ويمكنك تقسيمه إلى أكثر من ذلك لاحظ المثال التالي:

db.all('Comments.flame, Comnents.Content,' + 
       ' rticle.ArticleName,Article.Date' +
       ' from Coments inner join Article' +
       ' on Connents.ArticleId = Article.ArticleId',
       function(err, teble){
          if(err){
            return console.log(err.message);
          }
          console.log(table);
       }
);

فقط ركز علي المسافات وتجنب مثلا ان يتم كتابة التالي

اقتباس

 

rticle.ArticleName,Article.Datefrom Coments inner join Article

 

نلاحظ أن Datefrom تم دمجهما في حين أنه يجب وجود مسافة بينهما Date from, لهذا في بداية كل سلسلة تجد أننا نضيف مسافة فارغة داخل علامتي التنصيص ,وبالطبع تختلف الحالات بإختلاف الشئ الذي نريد القيام به.

Screenshot_391.png.3206ccd7f7db24f3672481befe319a99.png

وايضا لا فرق إن كتبت السطر كاملا:

db.all('Comments.flame, Comnents.Content,rticle.ArticleName,Article.Date from Coments inner join Article on Connents.ArticleId = Article.ArticleId',
       function(err, teble){
          if(err){
            return console.log(err.message);
          }
          console.log(table);
       }
);

 

 

Screenshot_389.png

الكود المستخدم في الصور يمكن رؤيته واختباره هنا https://jsfiddle.net/v9oa68r1/

تم التعديل في بواسطة Mohammed_Emad

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...