سؤال

لدي مشكلة بدأت للتو يحدث بعد إعادة تثبيت خادم موقع الويب الخاص بي.

في الماضي يمكنني القيام بذلك:

رمز:

<% 
set msgSet = conn.execute("select * from base_scroller where scroller_num = 1" 
%>

تحقق مما إذا كان غير فارغ أو أي شيء آخر

رمز:

<% if msgSet("scroller_name") <> "" then %>

وإذا كان من الممكن أن أفعل أي شيء معه (مثل إظهار القيمة)

رمز:

<%= msgSet("scroller_name") %>
<% end if %>

الآن لا أستطيع القيام بذلك، "IF" لا يعمل مع "msgset (" scroller_name ")" وعليها أن أضعفها أولا في متغير آخر

رمز:

<% scrollername = msgSet("scroller_name") %>

ثم وبعد ذلك فقط يمكنني القيام باختباراتها ...

رمز:

<% if scrollername <> "" then %>

وإظهارها أيضا.

<%= scrollername %>
<% end if %>

أود فقط العودة إلى الخيار للقيام بالعمليات على متغيرات مجموعة سجلات MySQL مثل B4 ....

هل صادف شخص ما هذه المشكلة؟ ما الذي تم تغييره، هل هو سرايون mysql falty أو شيء من هذا؟

شكرا يا رفاق.

لا يوجد حل صحيح

نصائح أخرى

هناك شيئان يجب عليك فعله للتأكد من أن لديك قيمة في الحقل:

  1. تأكد من أن مجموعة السجلات غير فارغة.
  2. تأكد من أن الحقل في الحالي ليس لديه قيمة فارغة.

أنا لست بعيدا عن أي تغييرات في برامج التشغيل التي أثرت على التعليمات البرمجية الخاصة بك، لكنني أفترض أن الاختلاف هو أن سلسلةك تعرج فعلا سلسلة فارغة (والتي تساوي "") وأردت مجموعة السجلات الخاصة بك قيمة فارغة مناسبة (ليست كذلك مساو "")

المزيد من التفاصيل:

بلدي ODBC هو: MySQL 5.1 سائق.

إصدار MySQL الخاص بي: MySQL Server 5.0

سلسلة Connetion الخاصة بي هي:

لقد حاولت إزالة STMT = مجموعة الأحرف العبرية؛ الخيار = 3؛ جزء - لا تغيير ...

المشكلة تستخدم أي متغيرات مباشرة من DB، يمكن أن يكون أي نوع من المتغير (النص، التاريخ، الدولي) ...

حتى في

اليوم (msgset ("scroller_date")) لا يعمل الآن ...

ومضحك هذا هو ... كل ذلك اعتاد العمل على ما يرام .. B4 التثبيت

ترى أي شيء خارج عن المألوف؟ ربما نسخة مختلفة mysql / odbc؟

نعم...

  1. ODBC الجديد هو 5.1: موجود على خوادم mysql.com (الرابط: http://dev.mysql.com/downloads/connnector/6dbc/5.1.html.)

  2. نعم. لقد قمت بإعادة تثبيت نظام التشغيل (Windows Server 2003) مرة أخرى على خادم الويب الخاص بي وتثبيت MySQL Server 5.0 عليه.

  3. أنا لا أحصل على خطأ، فهو لا يعود أي بيانات عندما أستخدم الطريقة التي كنت أشرحها على abourt، وعلي استخدام المتغيرات الإضافية كما أوضحت.

هل تحتاج بعد الآن بالتفاصيل من فضلك؟

يمكن أن تكون أفضل طريقة لاختبارها للتحقق لمعرفة ما إذا كانت مجموعة السجلات فارغة بطريقة بديلة.

أنا عادة استخدام:

On Error Goto 0

set msgSet = conn.execute("select * from base_scroller where scroller_num = 1" 

If msgSet.EOF = True And msgSet.BOF = True Then
  Response.Write "Recordset cursor was at the beginning and end of file - empty set."
  Response.End
End If

هذا قد يساعد بطريقة ما نحو تصحيح الأخطاء.

أوه، وشيء قد يكون مهم. لا أستطيع أن أتذكر ما تسبب في ذلك، ولكن في بعض الأحيان، وجدت أنه عند الرجوع إلى حقول MySQL عبر مجموعة سجلات، كان الأمر أقل دائما، بغض النظر عن ما هي الحقول الموجودة في تعريف قاعدة البيانات أو الاستعلام.

إذا كان هذا لا يتسبب في فشل البرنامج النصي الخاص بك، فربما يحاول معرفة ما تم إرجاعه بواسطة مجموعة السجلات.

Dim i

For Each i In msgSet.Fields
  Response.Write i & "=[" & msgSet.Fields(i) & "]<br />"
Next

حظ سعيد

لم أر هذه المشكلة من قبل، ولا أنا متأكد من السبب (ستكون المزيد من المعلومات حول الخطأ مفيدة) - ولكن، كإصلاح سريع نسبيا قد ترغب في إلقاء العنصر عند استخدامه. يحب:

   <%= cStr(msgSet("scroller_name")) %>

يرى http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#conversion. للمزيد من المعلومات.

مزيد من المعلومات حول خطأ في الحصول عليها سوف تساعدك على الحصول على إجابة أفضل. لا يوجد MyODBC 5.1، إذن أي إصدار من برامج تشغيل MyODBC التي تستخدمها؟ بواسطة "My ODBC هي: MySQL 5.1 برنامج التشغيل" تقصد برنامج التشغيل MySQL 5.1 - يجب أن يكون MyODBC الإصدار 3.51.

أيضا، من خلال "بعد إعادة تثبيت خادم موقع الويب الخاص بي" هل تعني أنك قمت بتثبيت نظيفة لنظام التشغيل الخادم؟ أو هل قمت فقط بإعادة تثبيت MySQL؟ أو أي شيء آخر؟ جاء MySQL 5.1 للتو 8 ديسمبر - هل كان هذا الجزء من ترقية؟

أخيرا، يرجى قراءة بعض التعليقات على سؤالك وبعض ردودك. كل الأشياء متساوية، إذا كان هناك بعض التوضيح اللازم، قم بتحرير السؤال لإضافة التفاصيل. لا تكتب استجابة. هذا ليس منتدى، وسوف تفقد استجابة سياقها في الدقيقة يتم تصويت شيء ما فوقه. كما أسهل في الحصول على القضية بأكملها إذا كانت جميعها في مكان واحد بدلا من التمرير بين السؤال والإضافات المختلفة التي تطرح كردود.

أحصل على نفس المشكلة ... فقط ترحيل موقع ASP من MySQL 4 & ODBC 3.x (نسخة قديمة ...) MySQL 5.1 و ODBC 5.1. إذا حاولت هذا الرمز البسيط:

اضبط RS = conn.execute ("حدد ....") في حين لا Rs.eof Response.write "T1:" & RS ("نص") و "
T2: "& RS (" نص ") و"
"Rs.movenext Wend.

نظرا لأن الإخراج أحصل على ما يلي: T1: Hello T2: T1: كيف حالك T2: إلخ ...

في المرة الثانية التي يمكنني فيها الوصول إلى الحقل ليس لها قيمة، الطريقة الوحيدة هي استخدام متغير TEMP لتخزين البيانات في المرة الأولى ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top