PDA

View Full Version : ایجاد جدول توسط کاربر با یک نام تصادفی



mohmp3
دوشنبه 09 مهر 1386, 00:53 صبح
سلام
امکانش هست که کاربر جدولی را با نام دلخواه خود (مثلا عبارتی که در یک Editbox وارد کرده ) ایجاد و نام گذاری کند و یا جدول با تابع Random نامگذاری شود.

البته سرچ هم کردم ، نمی دونم شاید از Keywords خوبی استفاده نکردم. در هر صورت اگه در تاپیکی مطرح شده، ممنون می شم لینک بدید.

mzjahromi
دوشنبه 09 مهر 1386, 08:33 صبح
بله امکانش هست
باید با Create Table استفاده کنید

SYNDROME
دوشنبه 09 مهر 1386, 15:38 عصر
با سلام
با اجازه دوستمان.
ایجاد یک جدول به 4 فیلد:


CREATE TABLE [dbo].[Tbl_Test] (
[Code] [nvarchar] (3) COLLATE Arabic_CI_AS NOT NULL ,
[Company] [tinyint] NOT NULL ,
[Name] [nvarchar] (50) COLLATE Arabic_CI_AS NULL ,
[Index] [int] NULL
)

برای آن هم می توانید (Tbl_Test) مثلا یک کاراکتر مثل "A" قرار دهید و سپس با تابع Random یک عدد تصادفی تولید کرده و در ادامه کلمه "A" قرار دهید و نام Table شما بشود.
موفق باشید

mohmp3
دوشنبه 09 مهر 1386, 19:12 عصر
دوست عزیز، جناب SYNDROME
من متوجه منظور شما نشدم. می فرمایید، بجای [TBL_Test] متغییر A رو قرار بدم. بعلاوه اینکه [dbo] یعنی چی؟

به هرصورت کد من اینه:



procedure TForm1.Button1Click(Sender: TObject);
var
A : String;
begin
A := Edit1.Text;
frmMain.Conn.ExecuteDirect('CREATE TABLE Table1 (NAME VARCHAR(20) NOT NULL, ' +
'AGE INTEGER, PRIMARY KEY (NAME))');

end;


حالا می خواهم متغییر A را بجای Table1 بگذارم. سوال اینه که چی جوری متغییر رو توی دستور SQL بذارم؟

Inprise
دوشنبه 09 مهر 1386, 20:06 عصر
نام جدولت رو از کاربر بگیر یا خودت بساز . Query ات را هم جوری بنویس که فقط نام جدولش s% باشه . از تابع Format برای ساختن Query نهائی استفاده کن . راهنمای دلفی رو برای این تابع ببین یا فروم رو جستجو کن . dbGo هم عنوان محصور کننده های بورلند برای تکنولوژی ADO هست .

SYNDROME
دوشنبه 09 مهر 1386, 21:03 عصر
دوست عزیز، جناب SYNDROME
من متوجه منظور شما نشدم. می فرمایید، بجای [TBL_Test] متغییر A رو قرار بدم.

شما به شکل زیر عمل کنید.


TableName := 'A'+InttoStr(Random(100));

این شد نام جدول شما حالا در زمانی که String مربوط که در بالا اشاره شد را می سازید به جای نام جدول که در بالا Tbl_Test است بنوسید


St := 'CREATE TABLE [dbo].['+TableName+'] . . . . .'

موفق باشید