Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / SQL инструкции / 12 сообщений из 12, страница 1 из 1
13.07.2008, 17:08
    #35427255
Votmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Добрый день! У меня появился очень глупый вопрос! Если честно, я пока только начинаю разбираться с SQL инструкциями, и поэтому у меня все вопросы глупые:)

У меня есть база. И я ее подключаю к своей программе через АДО. Я хочу удалить из нее данные, не входящие в два диапазона чисел. Я пишу(к примеру) :

delete * From OLD.DBF where DX not between 1 and 5 and not between 7 and 9

У меня появляется ошибка синтаксиса. Подскажите, что это за ошибка и как правильно все сделать. Большое спасибо.
...
Рейтинг: 0 / 0
13.07.2008, 17:35
    #35427258
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
...
Рейтинг: 0 / 0
14.07.2008, 08:26
    #35427571
WYPMAH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
VotmaxУ меня есть база. И я ее подключаю к своей программе через АДО. Я хочу удалить из нее данные...
ууу, судя по вопросу, вы слишком далеко полезли, для начала купите/скачайте книжку по основам языка SQL, затем по C#/ADO. NET и только затем приступайте что либо делать.

ЗЫ интересно, как вы базу создали ? )))
...
Рейтинг: 0 / 0
14.07.2008, 11:50
    #35428165
pyroman69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
VotmaxДобрый день! У меня появился очень глупый вопрос! Если честно, я пока только начинаю разбираться с SQL инструкциями, и поэтому у меня все вопросы глупые:)

У меня есть база. И я ее подключаю к своей программе через АДО. Я хочу удалить из нее данные, не входящие в два диапазона чисел. Я пишу(к примеру) :

delete * From OLD.DBF where DX not between 1 and 5 and not between 7 and 9

У меня появляется ошибка синтаксиса. Подскажите, что это за ошибка и как правильно все сделать. Большое спасибо.

Код: plaintext
1.
2.
3.
DELETE 
FROM OLD.DBF 
WHERE DX NOT BETWEEN  1  AND   5  AND
          DX NOT BETWEEN  7  AND  9 
...
Рейтинг: 0 / 0
14.07.2008, 21:09
    #35429712
Votmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Спасибо за ответы, даже за колкие (база уже была)
Я пишу:

Set db = New ADODB.Connection
Set RS = New ADODB.Recordset
db.CursorLocation = adUseClient

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\;" + "Extended Properties=""DBASE IV;"";"""
db.Open
RS.Open "delete From OLD.DBF where (DX not between 10 and 20) and (DX not between 40 and 50)", db, , , adCmdText


А программа выдает:
В первый раз - такой тип сортировки не поддерживается операционной системой
Во второй раз - отсутствует значение для одного или нескольких требуемых параметров

Что делать???
...
Рейтинг: 0 / 0
14.07.2008, 21:39
    #35429743
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
VotmaxСпасибо за ответы, даже за колкие (база уже была)
Я пишу:

Set db = New ADODB.Connection
Set RS = New ADODB.Recordset
db.CursorLocation = adUseClient

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\;" + "Extended Properties=""DBASE IV;"";"""
db.Open
RS.Open "delete From OLD.DBF where (DX not between 10 and 20) and (DX not between 40 and 50)", db, , , adCmdText


А программа выдает:
В первый раз - такой тип сортировки не поддерживается операционной системой
Во второй раз - отсутствует значение для одного или нескольких требуемых параметров

Что делать???

Как у вас рекордсет вообще с базой связан?
За рекордсетом телепатии раньше не наблюдал.
Вы к эксел что - ли коннектитесь?
Покажите всю строку подключения.
Что это значит - программа выдает в первый раз, во второй раз?
Когда первый, когда второй?
...
Рейтинг: 0 / 0
15.07.2008, 08:33
    #35430089
WYPMAH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
SQL_LamerКогда первый, когда второй?
Код: plaintext
new Random().Next( 0 ,  2 )
)))))))))))

в общем, ждем более четкого формулирования вопроса.
...
Рейтинг: 0 / 0
15.07.2008, 19:45
    #35432142
Votmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Все, я разобрался, сообщения выводились когда я не подключил какой то элемент ADO настройках.
Я пишу:

Set db = New ADODB.Connection
Set RS = New ADODB.Recordset
Set com = New ADODB.Command

db.CursorLocation = adUseClient

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\;" + "Extended Properties=""DBASE IV;"";"""

db.Open

comm.ActiveConnection = db
comm.CommandText = "delete From OLD.DBF where DX between 1 and 5"
comm.Execute

Программа отрабатывает без каких либо сообщений об ошибке.Но база после этого остается не отредактированной. Хотя если поменять имя столбика в таблице на неправильное, то появится ошибка, т.е. база открывается, команда проходит, а результата никакого! В чем дело, никто не знает?
Я предположил, что просто нет таких записей, однако проверил код на других базах, даже по текстовым полям с удалением нужной текстовой строки, но результат один и то же. Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
16.07.2008, 08:51
    #35432682
WYPMAH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Votmax
насколько я понимаю, ваш код должен выглядеть примерно так:
Код: plaintext
1.
2.
3.
4.
5.
Using conn As New SqlConnection("bla-bla")
    Dim comm As New SqlCommand()
    comm.Connection = conn
    comm.CommandText = "delete bla-bla..."
    comm.ExecuteNonQuery()
End Using

ЗЫ заместо SqlConnection, можете использовать нужный вам вариант.
...
Рейтинг: 0 / 0
20.07.2008, 11:14
    #35441138
Votmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Я понял, в чем было дело, оказывается записи помечались как удаленные, но в базе все равно оставались. Вот что я придумал: Создал такую же базу из старой, но пустую, применил PACK, и просто хочу с одной базы перекинуть все записи, отобранные по условию вот так:

Код:
1.
2.
3.
com.CommandText = "INSERT INTO OLD1.DBF select soato from OLD2.DBF where DX>0"
com.Execute



Выдается ошибка, что отсутствует значение для одного или нескольких параметров, это как?
...
Рейтинг: 0 / 0
20.07.2008, 16:01
    #35441261
SerP1983
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Попрбуйте указать весь перечень колонок, куда должен происходить инсерт
...
Рейтинг: 0 / 0
20.07.2008, 16:07
    #35441264
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL инструкции
Recordset-ы - УГ
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / SQL инструкции / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]