View Full Version : پردازش ثانویه رو حاصل select یک view
aliila
یک شنبه 20 خرداد 1386, 09:53 صبح
در برنامه بعد از زدن select رو یک view می خواهیم در حاصل یک پردازش انجام دهیم
مثلا در ستون سوم که از نوع رشته تحت داس است با یک تابع به رشته تحت ویندوز تبدیل کنیم
یعنی ستون سوم را ردیف به ردیف خوانده و مقدار جدید درج کنیم توجه کنید ستون سوم ویو یک ستون صریح در یک جدول نیست مثلا ترکیب سه ستون
نام + نام خانوادگی + آدرس
است
که این عملیات در هیچ کجا تاثیری نگذارد و فقط به کویک ریپورت جهت نمایش ارسال شود
اما فیلدهایی که صریح نیستند را قابل ویرایش نمی باشند چه کنم ؟
SYNDROME
یک شنبه 20 خرداد 1386, 15:16 عصر
با سلام
فکر کنم منظورت این است.
من یک Table با دوتا فیلد A , B ساختم
SELECT A , B
FROM Table1
حالا A و B را بها هم جمع می کنم و یک فیلد با نام C می سازم.
SELECT A + B as C
FROM Table1
حالا مقدار A و B را با هم جمع کرده وسه رقم سه رقم با تابع InsertCommaاز هم جدا می کنم و در C می ریزم.
SELECT InsertComma(A + B) AS c
FROM Table1
تابع InsertComma در SQLServer نوشته ام.
حالا به جای تابع InsertComma تابع ودت را قرار بده.
aliila
یک شنبه 20 خرداد 1386, 20:29 عصر
با تشکر شما منظور مرا متوجه نشدید من در برنامه دلفی بر اساس یک query یک ADOQuery1: را باز کرده ام
( ADOQuer1.sql.add(my_query
ADOQuer1.open
حال می خواهم
با یک حلقه for فیلد سوم ADOQuer1 را بایک مقدار عوض میکنم تا به quic report برای چاپ
بفرستم
for i:= 0 to ADOQuery1.fieldcount do
begin
ADOQuery1.edit ;
ADOQuery1.field[3]:=DosToWin(ADOQuery1.field[3]) ;
end
به اهمیت تابع DosToWinos در سطر آخر دقت کنید دقت کنید
شما تابع InsertComma در SQLServer نوشته اید ولی من DosToWinos را در دلفی نوشته ام
موقع اجرا erorr میدهد چون فیلد سوم فیلد ضمنی / مجازی / ... است
shayan_delphi
یک شنبه 20 خرداد 1386, 21:12 عصر
شما این کوئری را در AdoQuery بنویس
SELECT a, b ,(a+b )AS c FROM TABLE1
بعد با این کد تابع را روی فیلد سوم یا همان c اجرا کن
for i:= 0 to ADOQuery1.RecordCount -1 do
begin
ADOQuery1.edit ;
ADOQuery1.field[3]:=DosToWin(ADOQuery1.field[3]) ;
...
ADOQuery1.Next;
end
mzjahromi
یک شنبه 20 خرداد 1386, 21:53 عصر
میتونید برای این کار از CalculatedField استفاده کنید و به راحتی این کار را انجام دهید
برای این کار
1- روی AdoQuery دو بار کلیک کنید و همه فیلدها را به لیست اضافه کنید
2- یک فیلد Calculated هم اضافه کنید
3- در رویداد OnCalculated کد محاسبه خود رو بنویسید
نیازی به حلقه هم نیست خیلی هم مطمئن تر هست
SYNDROME
یک شنبه 20 خرداد 1386, 22:13 عصر
با سلام
در رویداد GetText مربوط به فیلد هم می توانی بنویسی.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.