View Full Version : خواندن و نوشتن Description هر Table در FireBird
  
بهروز عباسی
شنبه 30 دی 1391, 21:11 عصر
درود
چطوری باید Description هر Tableرو توی دیتابیس FireBird بخونم و بنویسم؟
 (از dbExpress استفاده می کنم)
بهروز عباسی
شنبه 30 دی 1391, 21:17 عصر
مشکل نوشتن رو حل کردم امّا نمیدونم چطوری اون مقدار رو توی برنامه بخونم و نمایشش بدم.
اینم تابعی که برای نوشتن ،نوشتم:
procedure Set_Category_Description(const CategoryName,
  CategoryDescription: string);
(*the following is an example how to use the procedure
 Set_Category_Description('Students','Information about students') ;*)
begin
  try
    with SQLQuery do
    begin
      with SQL do
      begin
        Close;
        Clear;
        Add('update rdb$relations set rdb$description = ' +
          QuotedStr(CategoryDescription) + ' WHERE rdb$relation_name = ' +
          QuotedStr(CategoryName));
        ExecSQL;
      end;
    end;
  except
    on E: Exception do
    begin
      MessageBox(0, pchar(E.Message), 'Exception', MB_OK+MB_ICONERROR);
    end;
  end;
end;
Felony
یک شنبه 01 بهمن 1391, 04:49 صبح
خوب با توجه به اون Query که برای آپدیت زدید ، پس باید بشه با این Query هم واکشیش کرد ، مگه اینطور نیست ؟
'SELECT rdb$description FROM rdb$relations WHERE rdb$relation_name = ?';
بهروز عباسی
یک شنبه 01 بهمن 1391, 14:25 عصر
خوب با توجه به اون Query که برای آپدیت زدید ، پس باید بشه با این Query هم واکشیش کرد ، مگه اینطور نیست ؟
'SELECT rdb$description FROM rdb$relations WHERE rdb$relation_name = ?';
 ممونو از کمکت
اما این Queryاجرا نمیشه و خطا میگیره
unknow ISC error 0
حالا اگرهم اجرا بشه چطوری نتیجش رو بریزم توی یک متغییر؟
Felony
پنج شنبه 05 بهمن 1391, 13:44 عصر
در مورد مشکل : https://www.google.com/search?q=unknow+ISC+error+0+in+firebird&oq=unknow+ISC+error+0+in+firebird&sourceid=chrome&ie=UTF-8#hl=en&tbo=d&spell=1&q=unknown+ISC+error+0+in+firebird&sa=X&ei=lQIBUaqGJ43RsgbZn4Fo&ved=0CDIQvwUoAA&bav=on.2,or.r_gc.r_pw.r_qf.&bvm=bv.41524429,d.Yms&fp=99bbb1d5e9938d35&biw=1600&bih=775
در مورد نحوه ریختن تو متغییر اول باید ببینی خروجی اسکریپت فوق چی هست و چه ستون هایی برگشت میده و بعد تو یک حلقه اون ها رو توسط اسم فیلدشون یا شماره ستونشون واکشی کنید و در متغییر مورد نظر بریزید .
BORHAN TEC
دوشنبه 09 بهمن 1391, 20:01 عصر
سلام
برای خواندن Description مربوط به یک جدول می توانید از کد زیر استفاده کنید:
Function TForm1.Get_Relation_Description(const CategoryName: string;
  Description_Max_Len: Cardinal ): string;
begin
  try
    with SQLQuery do
    begin
      with SQL do
      begin
        Close;
        Clear;
        Add('select cast(rdb$relation_name as varchar(31))AS A, cast(rdb$description as varchar('
          + IntToStr(Description_Max_Len) + ')) AS B');
        Add('from rdb$relations');
        Open;
        while not EOF do
        begin
          if Trim(FieldByName('A').AsString) = Trim(CategoryName) then
          begin
            Result := FieldByName('B').AsString;
            Break;
          end;
          next;
        end;
      end;
    end;
  except
    on E: Exception do
    begin
      MessageBox(0, pchar(E.Message), 'Exception', MB_OK + MB_ICONERROR);
    end;
  end;
end;
نحوه استفاده:
Caption := Get_Relation_Description(Edit1.Text, 10000);
در ضمن من این کد را در مورد Firebird 2.5 تست کردم ولی بعید می دانم که در نسخه 2.1 مشکلی پیش بیاید.
ختم این پرونده! :چشمک:
موفق باشید...
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.