کار با پایگاه داده ها در کلدفیوژن
برای کار با پایگاه
داده در کلدفیوژن، ابتدا باید برای آن پایگاه داده یک
Datasource تعریف کنید. مثلا، برای
ایجاد یک Datasource برای یک
پایگاه داده Microsoft Access به روش زیر عمل می کنیم
:
اگر در ویندوز
98 هستید، به Control Panel -> Data Sources (ODBC) بروید.
اگر در ویندوز
2000 یا ویندوز XP هستید، به Control
Panel -> Administrative Tools -> Data Sources(ODBC) بروید.
به System DSN بروید.
Add ... را کلیک کنید.
در پنجره باز شده، “Microsoft
Access Driver"
را انتخاب کنید و روی Finish کلیک کنید.
در پنجره باز شده برای
Datasource خود یک نام انتخاب کنید.
روی Select ... کلیک کنید
و فایل Access مورد نظر را انتخاب کنید.
به Start
-> Programs -> Macromedia Coldfusion MX ->
Administrator
بروید.
کلمه عبور را وارد کنید.
از قسمت سمت چپ صفحه Data
Sources
را انتخاب کنید.
در Data
Source Name
نام Datasource خود را بنویسید.
از Driver ، گزینه ی
JDBC-ODBC Bridge را انتخاب کنید و روی Add کلیک کنید.
در صفحه ای که
ظاهر می شود، از لیست ODBC DSN، نام Datasource ی را که درControl
Panel ایجاد
کرده بودید را انتخاب کنید.
روی Submit کلیک مکنید.
برای نمایش
داده های یک پایگاه داده در یک برنامه کلدفیوژن، از
تق <CFQuery> به روش زیر استفاده می کنیم
:
<CFQuery Datasource=”mydatasource” name=”query_name”>
Select
field_1,field_2,field_3 from table_name
</CFQuery>
<CFOutput
query=”query_name”>
Field
1 : #field_1# <BR>
Field
2 : #field_2# <BR>
Field
3 : #field_3# <BR>
</CFOutput>
Select field_1,field_2,field_3
from table_name یک عبارت SQL می باشد که سه فیلد
field_1، field_2، و field_3 تمام رکوردهای جدول table_name
از پایگاه داده ای که datasource “mydatasource” را به آن نسبت داده ایم را انتخاب می
کند و سپس نتیجه را در متغیر query_name قرار می دهد.
<CFQuery ...> یک حلقه چرخشی روی
تمام رکوردهای متغیر query_name انجام می دهد و
در هر مرحله مقادیر فیلد های هر رکورد به صورت متغیر در
دسترس هستند و می توان عملیات مختلفی روی آن ها انجام
داد. مثلا در کد بالا در هر مرحله مقادیر
داخل ## با مقادیر واقعی
فیلد های هر رکورد جایگزین می گردند و نمایش
داده می شوند.
برای افزودن یک
رکورد به یک پایگاه داده، مراحل زیر را باید انجام دهیم
:
ابتدا یک فرم HTML ساده برای دریافت
اطلاعات و ارسال آن ها به صفحه action ایجاد می کنیم :
<HTML>
<HEAD>
<TITLE>A Title</TITLE>
</HEAD>
<BODY>
<Form action=”add.cfm”
method=”post”>
Name : <input type=”text” name=”name”>
<BR>
Last name: <input type=”text” name=”lastname”>
<BR>
<input type=”submit”>
</Form>
</BODY>
</HTML>
برای یادگیری
مطالب بیشتر در این باره به کتاب ها و مراجع HTML مراجعه فرمائید.
سپس صفحه action را برای افزودن
رکورد جدید به پایگاه داده ایجاد می کنیم (add.cfm) :
<CFQuery name=”add_query” datasource=”mydatasource”>
Insert
Into my_table(
Field_1,
Field_2)
Values(
‘#form.name#’,
‘#form.lastname#’)
</CFQuery>
این کد یک
رکورد به جدول my_table پایگاه داده ای که mydatasource
به آن اشاره می کند، با مقادیر فیلد های form.name و form.lastname اضافه می کند. Form.name یک متغیر است که به مقدار Submit شده ی فیلد
name در فرم HTML اشاره می کند و مقدار آن با مقدار
اصلی عوض می گردد.
برای محدود کردن
نمایش رکوردها ی یک پایگاه داده از عبارت SQL ی مانند مثال زیر
استفاده می کنیم :
Select field1,field2,field3 from my_table where field1>0 AND field2=2
این عبارت نتایج
را به نتایجی که مقدار field1 آن ها بزرگتر از صفر و مقدار field2 آن ها برابر 2 می
باشد، محدود می کند. برای اطلاعات بیشتر در این زمینه
به کتاب ها و مراجع SQL مراجعه کنید.
کنترل جریان
برنامه :
در این قسمت چند
شیوه کنترل جریان برنامه را توضیح می دهم و بقیه را
برای قسمت های بعدی می گذارم.
برای اجرا کردن
کد یک فایل cfm دیگر در جایی
از برنامه ی مان، از cfinclude به صورت زیر
استفاده می کنیم :
<cfinclude template=”myfile.cfm”>
این دستور در هر
کجا از برنامه قرار بگیرد، با کد های موجود در فایل myfile.cfm
جایگزین می گردد.
برای هدایت
کردن مرور گر به یک صفحه ی دیگر یا یک آدرس اینترنتی
دیگر، از cflocation به صورت زیر استفاده می کنیم
:
<cflocation url=”http://google.com/”>
<cflocation url=”mypage.cfm”>
این دستور ها
باعث توقف اجرای برنامه جاری می شوند و مرورگر کاربر را به صفحه
ی مشخص شده ( مثلا http://google.com در مثال اول و mypage.cfm
در مثال دوم) می فرستد.
برای انجام دادن
کار ها بر اساس شرط یا شروط، از ساختار cfif/cfelseif/cfelse به صورت زیر
استفاده می کنیم :
<cfif condition1 >
Do
something here if condition1 is true
<cfelseif
condition2 >
Do another
thing here if condition2 is true
<cfelse>
Do some
other thing here if neither condition1 nor condition2 is true
</cfif>
در این جا اگر
شرط condtion1
درست باشد، کد قسمت اول اجرا می گردد (و بقیه قسمت ها
اجرا نمی گردند.) وگرنه اگر شرط condition2 درست باشد، کد قسمت
دوم اجرا می گردد. و گرنه، کد قسمت آخر (سوم) اجرا می گردد.
شروط در کلدفیوژن
عباراتی مثل Var1 EQ Var2 به معنی اینکه آیا
مقدار Var1 با مقدار Var2 برابر می باشد یا نه و یا
Var1 Is Not Var2 به معنی اینکه آیا
مقادیر Var1 و Var2 نا برابر می باشند یا نه،
هستند.
برای توقف اجرای
برنامه از cfabort استفاده می کنیم :
<CFAbort>
بازگشت به فهرست
بازگشت به صفحه نخست