PDA

View Full Version : IMPORT&EXPORT



mmehdi
سه شنبه 07 خرداد 1387, 14:56 عصر
سلام روزتون بخیر
من database م رو به جای اینکه exportکنم import کردم.حالا یکسری اطلاعاته تکراری دارم کحه حتی نمی شه delet شون کرد.چه کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟//
واجبه

ASKaffash
سه شنبه 07 خرداد 1387, 15:14 عصر
با سلام
اگر VB کار هستی یک کد نوشتم ببین بدرت میخوره ؟

Private Const NoF = 2
Private Sub Command1_Click()
Me.Command1.Enabled = False
Me.Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ForTest"
TblName = "FindDubl"
Dim F(0 To NoF - 1) As String
Dim SQLInsert As String, SQLValue As String, SQLWhere As String
F(0) = "a"
F(1) = "c"
Me.Adodc1.RecordSource = "Select * From " + TblName + " Order By "
For i = 0 To NoF - 1
Me.Adodc1.RecordSource = Me.Adodc1.RecordSource + IIf(i = 0, "", ",") + F(i)
Next
Me.Adodc1.Refresh
With Me.Adodc1.Recordset
LastV = ""
For i = 1 To .RecordCount
Me.Caption = i & "/" & .RecordCount
.AbsolutePosition = i
''''''''''''''''''''''''''''''''''''''''''
NewV = ""
For j = 0 To NoF - 1
NewV = NewV + "[" & .Fields(F(j)).Value & "]"
Next
If NewV = LastV Then
Cnt = Cnt + 1
Else
If Cnt <> 0 Then
Call RunSQL(Me.Adodc1.ConnectionString, "Delete " + TblName + " Where " + SQLWhere)
Call RunSQL(Me.Adodc1.ConnectionString, SQLInsert)
End If
Cnt = 0
End If
''''''''''''''''''''''''''''''''''''''''''
SQLInsert = "Insert " + TblName + " ("
SQLValue = ") Values("
For j = 0 To .Fields.Count - 1
SQLInsert = SQLInsert + IIf(j = 0, "", ",") + .Fields(j).Name
If InList(.Fields(j).Type, adBigInt, adInteger, adSmallInt, adTinyInt) Then
SQLValue = SQLValue + IIf(j = 0, "", ",") & .Fields(j).Value
Else
SQLValue = SQLValue + IIf(j = 0, "", ",") + "'" & .Fields(j).Value & "'"
End If
Next
SQLInsert = SQLInsert + SQLValue + ")"
SQLWhere = ""
For j = 0 To NoF - 1
SQLWhere = SQLWhere + IIf(j = 0, "", " and ") & F(j) & "=" & .Fields(F(j)).Value
Next
''''''''''''''''''''''''''''''''''''''''''
LastV = NewV
Next
End With
End Sub
Private Function InList2Val(ByVal P_Value1 As Variant, ByVal P_Value2 As Variant) As Boolean
If IsMissing(P_Value1) Then
InList2Val = False
Else
InList2Val = P_Value1 = P_Value2
End If
End Function
Public Function InList(ByVal Pv00 As Variant, _
Optional ByVal Pv01 As Variant, _
Optional ByVal Pv02 As Variant, _
Optional ByVal Pv03 As Variant, _
Optional ByVal Pv04 As Variant, _
Optional ByVal Pv05 As Variant, _
Optional ByVal Pv06 As Variant, _
Optional ByVal Pv07 As Variant, _
Optional ByVal Pv08 As Variant, _
Optional ByVal Pv09 As Variant, _
Optional ByVal Pv10 As Variant, _
Optional ByVal Pv11 As Variant, _
Optional ByVal Pv12 As Variant, _
Optional ByVal Pv13 As Variant, _
Optional ByVal Pv14 As Variant, _
Optional ByVal Pv15 As Variant, _
Optional ByVal Pv16 As Variant, _
Optional ByVal Pv17 As Variant, _
Optional ByVal Pv18 As Variant, _
Optional ByVal Pv19 As Variant, _
Optional ByVal Pv20 As Variant, _
Optional ByVal Pv21 As Variant, _
Optional ByVal Pv22 As Variant, _
Optional ByVal Pv23 As Variant, _
Optional ByVal Pv24 As Variant) As Boolean
InList = False
If InList2Val(Pv01, Pv00) Then InList = True: Exit Function
If InList2Val(Pv02, Pv00) Then InList = True: Exit Function
If InList2Val(Pv03, Pv00) Then InList = True: Exit Function
If InList2Val(Pv04, Pv00) Then InList = True: Exit Function
If InList2Val(Pv05, Pv00) Then InList = True: Exit Function
If InList2Val(Pv06, Pv00) Then InList = True: Exit Function
If InList2Val(Pv07, Pv00) Then InList = True: Exit Function
If InList2Val(Pv08, Pv00) Then InList = True: Exit Function
If InList2Val(Pv09, Pv00) Then InList = True: Exit Function
If InList2Val(Pv10, Pv00) Then InList = True: Exit Function
If InList2Val(Pv11, Pv00) Then InList = True: Exit Function
If InList2Val(Pv12, Pv00) Then InList = True: Exit Function
If InList2Val(Pv13, Pv00) Then InList = True: Exit Function
If InList2Val(Pv14, Pv00) Then InList = True: Exit Function
If InList2Val(Pv15, Pv00) Then InList = True: Exit Function
If InList2Val(Pv16, Pv00) Then InList = True: Exit Function
If InList2Val(Pv17, Pv00) Then InList = True: Exit Function
If InList2Val(Pv18, Pv00) Then InList = True: Exit Function
If InList2Val(Pv19, Pv00) Then InList = True: Exit Function
If InList2Val(Pv20, Pv00) Then InList = True: Exit Function
If InList2Val(Pv21, Pv00) Then InList = True: Exit Function
If InList2Val(Pv22, Pv00) Then InList = True: Exit Function
If InList2Val(Pv23, Pv00) Then InList = True: Exit Function
If InList2Val(Pv24, Pv00) Then InList = True: Exit Function
End Function
Public Sub RunSQL(ByVal YourConnectionString As String, ByVal YourSQL As String)
Dim TmpCon As New ADODB.Connection
TmpCon.Open YourConnectionString
TmpCon.Execute YourSQL
TmpCon.Close
End Sub

mmehdi
شنبه 11 خرداد 1387, 09:14 صبح
نه من اگه بخوام یه Query بنوسیم که سطرهای تکراری را برام delete کنه باید چی بنویسم؟

Arghavan_Reza
شنبه 11 خرداد 1387, 14:59 عصر
وقتی رکورد تکراری داره یعنی PK نداره! به جداول دیگه هم ارتباط نداره. اگر جدول شما Table1 باشه، در این صورت یک راه اینه :
1) یک کپی از جدول اصلی به نام Table1_Copy (بدون اطلاعات و با همان ساختار) ایجاد نمایید.
2) با دستور زیر اطلاعات بدون تکرار را به جدول کپی منتقل نمایید.


INSERT INTO Table1_Copy SELECT DISTINCT * FROM Table1

3) جدول اصلی را پاک نمایید.
4) جدول کپی را تغییر نام دهید.
اگر جدول اصلی دارای PK باشد راه دیگری پیشنهاد می شود.

mmehdi
یک شنبه 12 خرداد 1387, 09:46 صبح
مرسی بایت راهنماییتون
ولی
1- دیتابیسم نمی تونه یه جدول جدید ایجاد کنه، ولی با این حال یه جدول دیگمو اطلاعاتشو پاک کردم که اطلاعات این جدول رو توش وارد کنم.
خوب؟
این دستوری که شما لطف کردینو نوشتم ولی خطا می ده؟
؟؟؟؟؟/

ASKaffash
یک شنبه 12 خرداد 1387, 10:44 صبح
سلام
دوست من سلام
من 3 ماه قبل این مشکل برایم پیش آمد که این راه را رفتم .
درضمن :
- کپی جدول جدید یعنی ایجاد ایندکس ها و تریگرها و... برای همه جداول باید مشابه قبل ساخته شود.
- قبل از اجرای برنامه یک کپی از بانک تهیه کن
- اگر پایگاه داده بزرگ است این روش طول میکشد.

mmehdi
یک شنبه 12 خرداد 1387, 10:54 صبح
دستوره درسته؟

mmehdi
یک شنبه 12 خرداد 1387, 12:59 عصر
وای
من آخرش دیوونه میشم
من کپی هم که می کنم دوسری از اطلاعاتم میاد.پس این distinct به چه دردی می خوره؟

mmehdi
یک شنبه 12 خرداد 1387, 13:32 عصر
می دونین چی شده.
یک سطره دیگه تکراری بهم می ده که یکی از فیلدامو مقدارشو null کرده.
باید چه کنم؟

ASKaffash
یک شنبه 12 خرداد 1387, 16:23 عصر
با سلام
دوست عزیز DISTINCT تنها رکوردها با تمام محتوای یکسان را یکی میکند بنابراین کافیست یک فیلد null باشد کاملا موضوع عوض میشود

mmehdi
دوشنبه 13 خرداد 1387, 07:56 صبح
حلش کردم مرسی بابت کمکاتون

Arghavan_Reza
دوشنبه 13 خرداد 1387, 15:23 عصر
قابل توجه کلیه دوستان عزیز:
1) وقتی کسی اطلاعات مفیدی در اختیارتان می گذارد و یا مشکلتان را حل می کند به جای نوشتن متنی به عنوان تشکر (که یک رکورد از DB سایت را اشغال می کند) کافیه از کلید "تشکر" که برای این کار در نظر گرفته شده (و فقط 2 فیلد همان رکورد مربوط به پست را پر می کند) و در گوشه پایین و چپ هر پست قرار گرفته استفاده نمایید.
2) وقتی مشکل حل شد، حتما از منوی "ابزارهای تاپیک" گزینه "تایید پاسخ ارسالی به عنوان راه حل" را اجرا نمایید.%

leila63
سه شنبه 12 شهریور 1387, 12:49 عصر
سلام
كسي دستور خطي import & export نداره

leila63
سه شنبه 12 شهریور 1387, 12:52 عصر
كسي نيست جواب سوال منو بدونه

abbaspour
سه شنبه 12 شهریور 1387, 13:01 عصر
سلام
من يه راه جديد پيشنهاد مي كنم.از table يك بار export بگير توي xls2007 اونجا مي تونيduplicate هاتو پاك كني .
بعدش هم دوباره tableت رو بيار توي sql