سؤال

أنا أكتب تطبيقًا في C ++ يتفاعل مع SPSS 15 باستخدام I/O DLL.

تتكون قاعدة بيانات SPSS الخاصة بنا من عدد من الحالات ، ولكل منها حقل "معرف" فريد.

ما أحتاج إلى القيام به هو فتح قاعدة البيانات في القراءة/الكتابة ، والعثور على الحالة مع معرف المطابقة وتعديل بعض المتغيرات وفقًا لملفات CSV التي يمتلكها البرنامج.

هناك حالتان واضحتان من البداية:

  • حالة المطابقة غير موجودة (في هذه الحالة ، يمكنني بسهولة استخدام SPSSopenAppend () لإضافة الحالة.

  • حالة المطابقة موجودة. (وهذه هي الحالة الإشكالية)

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

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

أرغب في إضافة أن ترقية SPSS ليس خيارًا.

أود أيضًا تجنب الاضطرار إلى تكرار حالة كل حالة على حدة وبناء ملف جديد من نقطة الصفر.

هل كانت مفيدة؟

المحلول

لا أعتقد أن أحداً لن يكلف نفسه عناء الإجابة الآن بعد حله.

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

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