ورود

View Full Version : سوال: چرا دیتابیس به فایلی که در هارد ذخیره کردم وابسته است؟



mojallal68
یک شنبه 05 شهریور 1391, 20:19 عصر
سلام خدمت دوستان .
من یک مشکل در import کردن فایل هام دارم. من در کدی که نوشتم یک فایل درست می کنم(مثلا .txt.۱) و محتویات این فایل را در دیتابیس ذخیره می کنم . حال اگر این فایل ۱.txt که روی هارد ذخیره کردم را پاک کنم و بخوام محتویات این فایل رو از دیتابیس بخونم پغام اینکه "همچین فایلی وجود ندارد" رو می گیرم.
چرا دیتابیس به فایلی که در هارد ذخیره شده وابسته است؟ آیا راهی وجود داره که اگر اون فایل از هاردم پاک کنم بازم بتونم اطلاعات رو از دیتابیس بخونم؟
با تشکر از راهنمایی شما دوستان.

tdkhakpur
یک شنبه 05 شهریور 1391, 20:48 عصر
چرا دیتابیس به فایلی که در هارد ذخیره شده وابسته است؟ آیا راهی وجود داره که اگر اون فایل از هاردم پاک کنم بازم بتونم اطلاعات رو از دیتابیس بخونم؟
این پیغام به کدی که نوشته شده بستگی داره و ارتباطی با تراکنشهای دیتابیس نداره.

mojallal68
یک شنبه 05 شهریور 1391, 22:48 عصر
من کدم رو به زبان جاوا نوشتم. اگر فایل مورد نظر در هارد موجود باشد اطلاعات خونده میشه ولی به محض اینکه فایلم رو پاک می کنم ُ در قسمت list = q.getResultList(); مقدار null در list ریخته میشود.آیا اشکال در Query که نوشتمه ؟

TextClass e;
List list = null;
String str = JOptionPane.showInputDialog("Enter ID to Show Files:");
Query q = em.createQuery("select e.file from TextClass e where e.id=:num");
q.setParameter("num", str);
list = q.getResultList();

tdkhakpur
دوشنبه 06 شهریور 1391, 10:10 صبح
آیا اشکال در Query که نوشتمه ؟تو قسمت جاوا می پرسیدی زود نتیجه میگرفتی.
با کد بالایی که ارسال کردید اگه روش کوئری شما درست باشه کوئری شما وابسته به TextClass e; میشه به همین دلیل وقتی فایلی وجود نداره که e پر باشه و id داشته باشیم قطعا کوئری نمی تونه تراکنش رو انجام بده و چیزی پیدا نمیکنه.