|
|
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Хотелось бы услышать мнение сообщества. Провожу вставку записей из txt файла. И для изменения одного поля в таблице использую следующий метод (из-за скорости, а именно быстрого решения проблемы типов полей). В таблицах только Numeric,Char,Integer других типов нет. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ll_foxerror=.F. ENDIF[src][/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 11:15 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Ты бы сначала проверил КАК это будет работать. Код: plaintext 1. 2. 3. 4. "Видишь суслика?" В смысле, наблюдаешь хоть какое-нибудь сообщение об ошибке? НЕТ! FoxPro молча преобразует слово "пример" в число 0. Без какого-либо ссобщения об ошибке. Так работает функция VAL(). Значит, весь твой код, основанный на предположении , что возникнет ошибка - не имеет смысла. Просто НЕТ ошибки. Так что, остается один путь: проверять предполагаемый тип данных "вручную". Генератор ошибок не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 11:47 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
А наоборот. Просто в противном случае уж больно долго все идет. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 11:54 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
А ты не забыл, что содержимое текстового файла - это только текст . Там НЕТ числовых данных. Это значит, что заполнение текстового поля ВСЕГДА будет успешным. Никуда не денешься от анализа данных. Если текстовый файл хоть как-то структурирован, т.е. можно сказать наверняка, что вот здесь число, а вот здесь - символьная строка, тогда есть возможность предварительного анализа. Посмотри синтаксис команды APPEND FROM ... DELEMITED. Она как раз берет данные из текстового файла и автоматически все раскладывает по нужным полям. Разумеется, если сам текстовый файл структурирован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 12:07 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Текстовой файл структурирован. А именно [название поля]=[значение]. Он посути формируется по такой же таблице. В этом случае мой метод подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 12:36 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Pr0teusТекстовой файл структурирован. А именно [название поля]=[значение]. Он посути формируется по такой же таблице. В этом случае мой метод подходит? Текстовый файл должен быть структурирован как таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 12:41 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Он и так по сути структурирован как таблица. Просто не все записи присутствуют. [запись 1] [названи поля 1]=[значение1] [названи поля 2]=[значение2] [запись 2] [названи поля 1]=[значение1] [запись 3] [названи поля 1]=[значение1] [названи поля 2]=[значение2] [названи поля 3]=[значение3] И вставка ведется REPLACE mytable.&[названи поля 1]. WITH [значение1] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 12:50 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Pr0teusОн и так по сути структурирован как таблица. Просто не все записи присутствуют. [запись 1] [названи поля 1]=[значение1] [названи поля 2]=[значение2] [запись 2] [названи поля 1]=[значение1] [запись 3] [названи поля 1]=[значение1] [названи поля 2]=[значение2] [названи поля 3]=[значение3] И вставка ведется REPLACE mytable.&[названи поля 1]. WITH [значение1] Ну если только таблицу на бок положить Вот такого вида д.б. текстовый файл: [значение1]<разделитель>[значение2] ... <разделитель>[значениеN] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 13:05 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Открыть файл на низком уровне FOPEN() и анализировать его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 13:25 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Что-то не туда всех понесло 8) Файл есть, он структурирован, как показано выше, при его проходе выбирается поле и соответствующее ему значение. Вопрос заключался могу ли я применить такую конструкцию при модификации табличной записи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Спасибо Владимиру М за ответ. Как я понял в моем случае, т.к. файл жестко структурирован, этот метод можно применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 13:49 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Посмотри вот это решение http://www.sql.ru/forum/actualthread.aspx?tid=361184#3392561 Структура очень похожа. Думаю, легко сможешь перестроится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 14:09 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Зачем так много? REPLACE mytable.&[название поля из txt]. WITH IIF(TYPE([значение из txt])="N",VAL([значение из txt]),[значение из txt]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 14:10 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
2 AleksMed Значение из txt всегда текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 14:29 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
И что если символьное поле содержит только '0' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 14:30 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
:-)) Анализируй не источник, а тип поля приемника !!! Код: plaintext 1. 2. и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 14:39 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Pr0teus2 AleksMed Значение из txt всегда текст. Ты сначала попробуй и хелп по TYPE() почитай. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 15:25 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Pr0teus2 AleksMed Значение из txt всегда текст. Код: plaintext 1. 2. 3. 4. 5. Хотя использовать это надо крайне осторожно. А если текст совпадет с именем поля таблицы? Или переменной памяти? Код: plaintext 1. 2. 3. Т.е., "в общем случае", я бы не советовал этим пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 16:44 |
|
||
|
Импорт из текстового файла
|
|||
|---|---|---|---|
|
#18+
Спасибо. Но я все же остановлюсь на своем методе. Или же на анализе поля приемника. Поле и так имеет заведомо корректное значение, т.к. выгружалось из такой же таблицы. Т.е. полю таблице четко соотвествует его значение, которое в него должно вставиться, только тип надо подменить (строковой или число). P.S. Текстовой файл у меня представляет документ XML, а парсинг ручками делаю через объект MSXML2.DOMDocument.3.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2006, 11:46 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34126238&tid=1590386]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 458ms |

| 0 / 0 |
